home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / texttors / vi / vimanual.doc < prev    next >
Encoding:
Text File  |  1991-07-05  |  108.4 KB  |  3,103 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                         OAK HILL VI (TM) SHAREWARE MANUAL
  7.                       _______
  8.                  ____|__     |               (R)
  9.               --|       |    |-------------------
  10.                 |   ____|__  |  Association of
  11.                 |  |       |_|  Shareware
  12.                 |__|   o   |    Professionals
  13.               -----|   |   |---------------------
  14.                    |___|___|    MEMBER
  15.         
  16.         PLEASE READ THIS LICENSE AGREEMENT AND DISCLAIMER BEFORE USING
  17.         OAK HILL VI SHAREWARE.  USING THE PROGRAM CONSTITUTES YOUR
  18.         ACCEPTANCE OF THE TERMS OF THIS AGREEMENT AND THE ACCOMPANYING
  19.         DISCLAIMER.
  20.                              LICENSE AGREEMENT
  21.     
  22.     1. SHAREWARE:  This is shareware.  You may try this software and
  23.     manual free of charge for thirty days.  If you continue to use the
  24.     software beyond thirty days, you must register with Oak Hill
  25.     software.  The registration fee is $60.  In return for this fee you
  26.     will receive the latest version of the software on disk, a type-set-
  27.     quality printed manual, a registration number, and support by mail.
  28.     
  29.     2. COPYING:  Whether you decide to keep the software or not, you
  30.     may copy the shareware archive file "VI57A1" containing the
  31.     programs, manual, and other files and pass it along to others
  32.     subject to the following restriction: THE ENTIRE SHAREWARE ARCHIVE
  33.     FILE MUST BE COPIED WITHOUT MODIFICATION INCLUDING ALL CONTAINED
  34.     FILES, COPYRIGHT, LICENSE, AND LEGAL NOTATIONS.  The VI57A1 file
  35.     may appear with extension ".ZIP" or ".EXE" or some other extension
  36.     depending on the archiving method, which may differ depending on
  37.     vendor or BBS sysop preferences.
  38.     
  39.     3. CHARGING FEES:  No one other than Oak Hill Software may charge
  40.     any fee for the distribution of Oak Hill Vi (TM) without first
  41.     obtaining authorization from Oak Hill Software Inc at 73 Hillyer
  42.     Circle, Middletown, NJ, 07748, 908-671-8544.  This authorization is
  43.     automatically granted to distributors recognized by the (ASP) as
  44.     adhering to its guidelines for shareware distributors, and such
  45.     distributors may begin offering Oak Hill Vi immediately.
  46.     
  47.     4. COMMERCIAL USERS:  Commercial users of Oak Hill Vi (TM) must
  48.     register and pay for their copies of Oak Hill Vi within 30 days of
  49.     first use or their license is withdrawn.  Site-License arrangements
  50.     may be made by contacting Oak Hill Software.
  51.       
  52.                                   DISCLAIMER
  53.     
  54.     THIS SOFTWARE AND ITS ACCOMPANYING REFERENCE MATERIAL ARE
  55.     DISTRIBUTED "AS IS", WITHOUT WARRANTY AS TO THEIR PERFORMANCE,
  56.     MERCHANTABILITY, OR FITNESS FOR ANY PARTICULAR PURPOSE.  THE ENTIRE
  57.     RISK AS TO THE RESULTS AND PERFORMANCE OF THE PROGRAM IS ASSUMED BY
  58.     THE USER.
  59.     
  60.     NEITHER OAK HILL SOFTWARE, NOR ANYONE WHO SUPPLIES COPIES OF THE
  61.     OAK HILL VI SOFTWARE OR MANUAL, SHALL BE LIABLE FOR INDIRECT,
  62.     SPECIAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OF THE
  63.     PROGRAM OR MANUAL.
  64.  
  65.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  66.  
  67.  
  68.  
  69.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 2
  70.  
  71.  
  72.     
  73.                OAK HILL VI SHAREWARE REGISTRATION FORM
  74.     
  75.     REMINDER:  THIS IS SHAREWARE.  IT IS NOT FREE.  If you continue to
  76.     use the software beyond your 30-day free-trial period, you must
  77.     register.  If you register you will receive the latest version of
  78.     the program on disk, a type-set-quality printed manual, and a
  79.     registration number that allows you to receive support-by-mail.
  80.     
  81.     To register, please fill out this form and mail it with check or
  82.     money order for $60 to Oak Hill Software at the address below.
  83.     Please do not send cash.
  84.     
  85.     NAME:__________________________________________________________
  86.     
  87.     COMPANY:_______________________________________________________
  88.     
  89.     ADDRESS:_______________________________________________________
  90.     
  91.     CITY, STATE, ZIP:______________________________________________
  92.     
  93.     PROGRAM OBTAINED FROM:_________________________________________
  94.     
  95.     COMPUTER BRAND & MODEL:________________________________________
  96.     
  97.     DISK SIZE PREFERRED (5-1/4 or 3-1/2):___________________________
  98.     
  99.     WHERE YOU HEARD ABOUT OAK HILL VI:_____________________________
  100.     
  101.     TODAY'S DATE: _________________________________________________ 
  102.     
  103.     
  104.     (5.7 91-05-25)               Oak Hill Software
  105.                                       73 Hillyer Circle
  106.                                     Middletown, NJ 07748
  107.                                     908-671-8544
  108.     
  109.     COMMENTS OR QUESTIONS:_____________________________________________
  110.     
  111.     ___________________________________________________________________
  112.     
  113.     ___________________________________________________________________
  114.     
  115.     ___________________________________________________________________
  116.     
  117.     ___________________________________________________________________
  118.     
  119.     ___________________________________________________________________
  120.     
  121.     ___________________________________________________________________
  122.     
  123.     ___________________________________________________________________
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  132.  
  133.  
  134.  
  135.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 3
  136.  
  137.  
  138.     
  139.                               CONTENTS
  140.     
  141.     ====================================================================
  142.     
  143.      1.0 INTRODUCTION ..............................................  4
  144.          1.1 GETTING STARTED .......................................  6
  145.          1.2 STANDARD AND COMPACT MODELS OF OAK HILL VI.............  6
  146.          1.3 FILE NAMING AND EDITING MULTIPLE FILES ................  8
  147.          1.4 SPECIAL FEATURES FOR LAPTOP PORTABLES .................  8
  148.          1.5 BUGS AND NEW FEATURES .................................  9
  149.     
  150.      2.0 COMMAND SUMMARY ........................................... 10
  151.          2.1 MOVING AROUND IN YOUR FILE ............................ 10
  152.          2.2 FINDING TEXT PATTERNS ................................. 13
  153.          2.3 INSERTING AND APPENDING TEXT .......................... 14
  154.          2.4 DELETING TEXT ......................................... 14
  155.          2.5 CHANGING TEXT ......................................... 15
  156.          2.6 YANKING (COPYING) TEXT INTO YANK/DELETE BUFFER ........ 17
  157.          2.7 OTHER TEXT MODIFICATION COMMANDS ...................... 18
  158.          2.8 WRITING, READING AND EXITING COMMANDS ................. 22
  159.          2.9 OPTION-SETTING AND OTHER COMMANDS ..................... 25
  160.          2.10 IBM EDIT KEYS ........................................ 30
  161.  
  162.      3.0 LINE RANGE SPECIFICATION .................................. 31
  163.  
  164.      4.0 TEXT FILL AND CENTERING FEATURES .......................... 32
  165.          4.1 TEXT FILL FEATURE ..................................... 32
  166.          4.2 TEXT CENTERING FEATURE................................. 34
  167.  
  168.      5.0 SETUP FILE "VISETUP.VI" ................................... 35
  169.  
  170.      6.0 MEMORY AND FILE SIZE CONSIDERATIONS ....................... 36
  171.  
  172.       7.0 "SLICE" UTILITY PROGRAM ................................... 38
  173.  
  174.      8.0 "PAGE" TEXT PROCESSING PROGRAM ............................ 40
  175.  
  176.      9.0 OAK HILL Vi (TM) AND UNIX (TM ) Vi ........................ 42
  177.     
  178.      10.0 MISCELLANEOUS INFORMATION ................................ 42
  179.     
  180.      11.0 COMMAND INDEX AND QUICK REFERENCE ........................ 44
  181.     
  182.     ====================================================================
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  198.  
  199.  
  200.  
  201.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 4
  202.  
  203.  
  204.                 
  205.     1.0 INTRODUCTION
  206.     ======================================================================
  207.         Thank you for trying Oak Hill Vi (TM). This reference document
  208.         introduces the program and lists the commands available on the
  209.         current version.
  210.  
  211.         Oak Hill Vi (TM) is designed to work on the IBM PC/XT/AT, IBM PS/2,
  212.         and virtually all IBM Compatibles.  (See following section for some
  213.         possible exceptions.)
  214.  
  215.         Oak Hill Vi (TM) provides a large subset of the the standard UNIX
  216.         (UNIX is a trademark of AT&T) vi editor capabilities, and within
  217.         that subset attempts to mimic the command syntax and operation of
  218.         the UNIX vi editor as closely as possible.  It also provides
  219.         paragraph formatting, line centering, and case conversion features
  220.         not found in standard UNIX vi.
  221.  
  222.         If you do not already know how to use a vi editor, a good way to
  223.         learn is to work through the commands on a practice file.  Don't be
  224.         intimidated by the long list of commands -- no one uses all of
  225.         them, and many are just synonyms for other commands.  If you are
  226.         uncertain which commands to learn first, we recommend that you
  227.         start with those that marked with an arrow "->" in the margin.
  228.         While editing preferences vary from person to person, these are
  229.         among the most commonly used vi commands.  Whether you are a
  230.         beginner or an advanced user, you should find the Command Index
  231.     and Quick Reference in Section 10 to be useful.
  232.         
  233.         Beginners who would like a formal tutorial should consult standard
  234.         UNIX literature and primers on vi.  One good source is "Editing
  235.         in a UNIX Environment -- The vi/ex Editor", by Mohammed el Lozy,
  236.         Prentice Hall, 1985.
  237.     
  238.     
  239.     REMINDER:  THIS IS SHAREWARE.  IT IS NOT FREE.  If you continue to
  240.     use the software beyond your 30-day free-trial period, you must
  241.     register.  If you register you will receive the latest version of
  242.     the program on disk (with no shareware reminder notices or pauses),
  243.     a type-set-quality printed manual, and a registration number that
  244.     allows you to receive support-by-mail.  See the registration form
  245.     above.
  246.     
  247.     Whether or not you continue to use the software (and therefore
  248.     register), you are free to pass along the shareware archive file
  249.     VI57A1.XXX to others or to upload it to any bulletin board system
  250.     (BBS).  Note that the ".XXX" extension may be ".ZIP" or ".EXE" or
  251.     some other extension depending on the archiving method preferences
  252.     of vendors or BBS sysops.  Note also that you may pass along ONLY
  253.     the original unmodified VI57A1 file.  If you do not have that file,
  254.     you may download it from the CompuServe IBMAPP Forum, Text Editor
  255.     section.  It is the intention of Oak Hill Software to keep an
  256.     updated shareware "ZIP" file in that location.
  257.     
  258.     A Commercial shrink-wrap version of Oak Hill Vi (TM), called
  259.     "Personal Vi" is available in a standard shrink-wrap software
  260.     binder from Advantage Software, 1-800-333-3141, or Personalized
  261.     Software, 515-472-6330, Master Card & Visa accepted.  Corporate
  262.  
  263.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  264.  
  265.  
  266.  
  267.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 5
  268.  
  269.  
  270.     purchasers may call Corsoft at 908-389-1700.  Or you may call Oak
  271.     Hill Software directly at 908-671-8544.
  272.     
  273.      INTRO-SCREEN PAUSE DEFEAT:  Aside from a shareware-specific
  274.      greeting message that appears when you first load Oak Hill Vi (TM),
  275.      this shareware version of the software is identical to the
  276.      Registered and Commercial versions.  After the greeting is
  277.      displayed you are prompted for a carriage return to continue the
  278.      program.  If you find it annoying to have to press the return key,
  279.      the command ":set nopress" may be added to your VISETUP.VI file to
  280.      remove the need for the carriage return (see Sections 5.0 and 2.9).
  281.      Thereafter, the greeting message will appear only while your text
  282.      files are being read into memory.
  283.  
  284.     NOTICE: Oak Hill Software, Inc. is a member of the Association of
  285.     Shareware Professionals (ASP).  ASP wants to make sure that the
  286.     shareware principle works for you.  If you are unable to resolve a
  287.     shareware-related problem with an ASP member by contacting the
  288.     member directly, ASP may be able to help.  The ASP Ombudsman can
  289.     help you resolve a dispute or problem with an ASP member, but does
  290.     not provide technical support for members' products.  Please write
  291.     to the ASP Ombudsman at 545 Grover Road, Muskegon MI 49442-9427or
  292.     send a CompuServe message via easyplex to ASP Ombudsman 70007,3536
  293.                     
  294.                     Oak Hill Software, Inc.
  295.                     73 Hillyer Circle
  296.                     Middletown, NJ 07748
  297.                     908-671-8544
  298.     
  299.                               _______
  300.                          ____|__     |               (R)
  301.                       --|       |    |-------------------
  302.                         |   ____|__  |  Association of
  303.                         |  |       |_|  Shareware
  304.                         |__|   o   |    Professionals
  305.                       -----|   |   |---------------------
  306.                            |___|___|    MEMBER
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  330.  
  331.  
  332.  
  333.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 6
  334.  
  335.  
  336.     1.1 GETTING STARTED
  337.     -------------------------------------------------------------- 
  338.     To get started, simply copy the shareware file VI57A1.ZIP to a
  339.     convenient directory and use an unzipping program (such as PKUNZIP)
  340.     to extract the files listed in the table below.  If you have the
  341.     self-extracting shareware file VI57A1.EXE, you need only execute
  342.     this file to extract the files listed below.  If VI57A1 appears
  343.     with some other extension, follow the instructions of the BBS sysop
  344.     or vendor from whom you obtained the file.
  345.  
  346.     FILE           PURPOSE
  347.     -----------------------------------------------------------
  348.     VIMANUAL.DOC   This manual text file
  349.  
  350.     VI_STD.EXE     Oak Hill Vi Standard Model (Video-RAM version)
  351.     VI_CMP.EXE     Oak Hill Vi Compact Model (ANSI.SYS version)
  352.     
  353.     VISETUP.VI     Sample IBM/Compatible Setup File 
  354.  
  355.     SLICE.EXE      A utility program to help view and "slice up" 
  356.                       large files (Section 6)
  357.     PAGE.EXE       A utility program to produce "paged" 
  358.                       output for simple word processing (Section 7)
  359.     CR_CRLF.EXE    A utility program to convert non-standard
  360.                           text files to standard DOS ASCII files
  361.     TRANS.PVI      Sample character translation table for use
  362.                        with PAGE.EXE
  363.  
  364.     VIREADME.DOC   File containing latest Oak Hill Vi information
  365.     VENDOR.DOC     File with information for software distributors
  366.     SYSOPBBS.DOC   File with information for BBS Sysops
  367.     PACKING.LST    File with list of files included in VI57A1
  368.  
  369.         REGISTER.DOC   File with form and information on registering
  370.     
  371.         For IBM and most compatible computers, simply copy VI_STD.EXE into
  372.         your working directory or "BIN" directory and give it a convenient
  373.         name such as VI.EXE.  We recommend that you also copy the sample
  374.         VISETUP.VI file provided, although it is not required.
  375.  
  376.         For example, for an IBM PC/XT/AT, PS/2 or compatible, assuming
  377.         the expanded files are on a disk in drive A and your hard disk
  378.         is drive C, the commands would be
  379.  
  380.         COPY  A:VI_STD.EXE C:\BIN\VI.EXE
  381.         COPY  A:VISETUP.VI C:\BIN\VISETUP.VI
  382.  
  383.         To edit a file called "foo", simply issue the command "VI FOO".
  384.  
  385.         If you have difficulty making VI_STD.EXE work, it could be that
  386.         your computer is a (now-rare) machine that is not video-RAM
  387.         compatible with the IBM.  In that case, try the VI_CMP.EXE version
  388.         as outlined below.  This version uses the ANSI.SYS driver and
  389.         should work with any machine ever advertised as "IBM Compatible".
  390.         If you have continued difficulty, please contact Oak Hill Software.
  391.         
  392.     
  393.     1.2 STANDARD AND COMPACT MODELS OF OAK HILL VI
  394.  
  395.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  396.  
  397.  
  398.  
  399.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 7
  400.  
  401.  
  402.     ---------------------------------------------------------------------
  403.     In most cases you should use the Standard Model of Oak Hill Vi
  404.     (TM), VI_STD.EXE.  The Standard Model produces fast screen updates
  405.     and allows you to edit large files (up to 250,000 characters).
  406.     However, in some situations, you may prefer the Compact Model, as
  407.     described below.
  408.  
  409.     The Compact Model, VI_CMP.EXE, contains all the commands and
  410.     features of the Standard Model, while occupying 35% to 40% less
  411.     disk space.  This can be an advantage if disk space is at a
  412.     premium, as it is in some laptop computers with RAM disks.  The
  413.     Compact Model may also be the appropriate choice if you plan to use
  414.     Oak Hill Vi (TM) in conjunction with Terminate-and-Stay-Resident
  415.     programs (see Section 6.0).  Furthermore, the Compact Model should
  416.     work with any computer that is advertised as "IBM-Compatible",
  417.     including older machines that may not be 100% compatible with the
  418.     IBM video RAM.  
  419.  
  420.     The disadvantages of the Compact Model are that (1) it cannot edit
  421.     files as large as those for the Standard Model, (2) it produces
  422.     slower screen updates than the Standard Model, and (3) it takes
  423.     longer to load and execute than the Standard Model.
  424.  
  425.     To use the Compact Model, you MUST have the line
  426.  
  427.         DEVICE=ANSI.SYS
  428.  
  429.     in a CONFIG.SYS file in the root directory of the MS-DOS disk you
  430.     use to boot your system. Likewise, the driver ANSI.SYS, supplied
  431.     with your DOS disk, must be in that same directory.
  432.  
  433.     A simple way to add the required line to CONFIG.SYS is to enter the
  434.     root directory on the disk that you use to boot your system and
  435.     enter the following:
  436.  
  437.         type con >> config.sys
  438.         device=ansi.sys
  439.         ctl-z
  440.  
  441.     (The last line is a single "control-Z" character). This will append
  442.     the necessary line to an existing CONFIG.SYS file (or create a
  443.     CONFIG.SYS file if one does not exist).
  444.  
  445.     Oak Hill Vi (TM) does all editing on buffers stored in a core
  446.     memory "heap".  Except when reading and writing files, or when
  447.     using external filters via the '!' command, the program does not
  448.     access disk storage.  This has the advantage of making the program
  449.     very fast, as well as reducing the power consumption and noise
  450.     level in battery-powered lap-top portable computers with floppy
  451.     disk drives.  It has the disadvantage of limiting the maximum-size
  452.     file you can edit.
  453.  
  454.     The maximum file sizes that can be edited with the two models are 
  455.     as follows --
  456.  
  457.                    Approximate        Available
  458.             Max File Size        Machine Memory
  459.     ---------------------------------------------------------
  460.  
  461.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  462.  
  463.  
  464.  
  465.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 8
  466.  
  467.  
  468.     Standard Model    250,000 characters    640K bytes
  469.     Compact Model     35,000 characters    140K bytes
  470.  
  471.     The two Models are identical except for the maximum amount of
  472.     memory "heap" that each program can manage for buffer storage of
  473.     the file you are editing. Because the Compact Model addresses
  474.     memory with 16-bit pointers, it can address no more than 64K of
  475.     heap. This makes the program more compact to store than on the
  476.     Standard Model. The Standard Model uses 32-bit pointers to address
  477.     memory, making it larger to store.  The Compact Model saves still
  478.     more space by using a special encoding algorithm to reduce the size
  479.     of the .EXE file.  It takes slightly longer to load because it must
  480.     first "expand" itself to a normal .EXE file.
  481.  
  482.     The Standard Model requests memory from DOS only as it is needed to
  483.     accommodate your file. You do not need 640K to run the Standard Model
  484.     unless you are editing very large files! The Compact Model requests
  485.     64K of memory as soon as it is loaded.
  486.  
  487.     For extended editing on a very large file, it is good practice with
  488.     any editor to cut the file into smaller segments. Public-domain
  489.     "SPLIT" utilities or the "SLICE" utility provided with Oak Hill Vi
  490.     (TM) helps you do that. See Section 7.
  491.         
  492.     
  493.     1.3 FILE NAMING AND EDITING MULTIPLE FILES
  494.     ---------------------------------------------------------------------
  495.         When you issue the command "VI FILENAME", you may use DOS file name
  496.         conventions, including the use of "wildcard" characters like '*'
  497.         and '?'.  If more than one file is implied, as it might be in "VI
  498.         *.C" you may edit each of these in turn using the ":n<cr>" command.
  499.  
  500.         You may also list more than one file name.  Up to 20 files can be
  501.         placed in the editing queue.
  502.  
  503.  
  504.         1.4 SPECIAL FEATURES FOR LAPTOP PORTABLES
  505.     ---------------------------------------------------------------------
  506.         If you are using Oak Hill Vi (TM) on a laptop portable, you should
  507.         make special note of two user-requested features that have proven
  508.         very popular.
  509.  
  510.         First, the ":set nobeep" option allows you to replace the usual vi
  511.         audible beep tone with a highlighted "BEEP!" flag at the bottom of
  512.         your screen.  This makes it easier to use your laptop on an
  513.         airplane where the beep may be difficult to hear, or in a meeting
  514.         room where an audible beep would disturb others in the room.
  515.  
  516.         Second, on some laptops that use non-backlit LCD displays (like the
  517.         original Toshiba 1000), it can be difficult to find the flashing
  518.         underscore cursor on the screen, especially when the ambient
  519.         lighting is poor.  The ":set cursor = box" option allows you to
  520.         substitute a flashing box cursor for the underscore -- this is much
  521.         easier to find.  
  522.  
  523.         If you find yourself making frequent use of these or other options,
  524.         don't forget to install the commands in a VISETUP.VI file so that
  525.         they will be automatically invoked every time you start Oak Hill
  526.  
  527.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  528.  
  529.  
  530.  
  531.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 9
  532.  
  533.  
  534.         Vi (TM).  See Section 5.0.
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  594.  
  595.  
  596.  
  597.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 10
  598.  
  599.  
  600.     1.5 BUGS AND NEW FEATURES
  601.     ---------------------------------------------------------------------
  602.         If you find a bug in the program or you would like to see a feature
  603.         added to the program, please let us know by mail.  Please supply as
  604.         much information about bugs as you can.  (It cannot be investigated
  605.         here if we can't recreate it!)  If you are among the first three
  606.         users to find a bug that is corrected in a later version, or among
  607.         the first three to make a suggestion that is incorporated in a
  608.         later version, you will receive a free copy of the revised version.
  609.  
  610.                         Oak Hill Software
  611.                         73 Hillyer Circle
  612.                         Middletown, NJ 07748
  613.                         908-671-8544
  614.                 
  615.                               _______
  616.                          ____|__     |               (R)
  617.                       --|       |    |-------------------
  618.                         |   ____|__  |  Association of
  619.                         |  |       |_|  Shareware
  620.                         |__|   o   |    Professionals
  621.                       -----|   |   |---------------------
  622.                            |___|___|    MEMBER
  623.                 
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  660.  
  661.  
  662.  
  663.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 11
  664.  
  665.  
  666.     2.0 COMMAND SUMMARY
  667.     ======================================================================
  668.         In the list below, many of the commands may be preceded by an
  669.         optional repetition number.  To do so is the equivalent of entering
  670.         the command n times.  For example, the command "4h" will move the
  671.         cursor left four characters instead of just one.  The syntax
  672.         of these commands is illustrated in each case with the example
  673.         of n=4.
  674.     
  675.         <ctl-X> indicates that the control key is to be held down at the
  676.     ^X      same time the indicated character X is depressed.  An
  677.         alternative way of showing this is with the notation ^X. 
  678.                 
  679.         <cr> denotes a carriage return.  
  680.         
  681.         <sp> denotes a space
  682.         
  683.         <esc> denotes an escape character
  684.         
  685.         Items enclosed in [] brackets are optional.
  686.  
  687.     A "white" or "white space" character is a space or tab character.
  688.         
  689.      -> Commands that are marked with an arrow "->" in the left margin are
  690.         the most commonly used vi commands.  If you are a beginner, we
  691.         recommend that you practice these commands first.
  692.  
  693.     2.1 MOVING AROUND IN YOUR FILE
  694.     ----------------------------------------------------------------------
  695.      -> h  4h           Move cursor left 1 or 4 characters on current line
  696.      -> l  4l           Move cursor right 1 or 4 characters on current line
  697.      -> k  4k           Move cursor up 1 or 4 lines in current column
  698.      -> j  4j           Move cursor down 1 or 4 lines in current column
  699.     
  700.      -> 0        Move cursor to first character in current line
  701.      -> $        Move cursor to last character in current line
  702.      
  703.         |  4|           Move cursor to char closest to 1st or 4th column
  704.     
  705.                  Note: In the commands below: a "word" is a
  706.                  string of characters separated by white space
  707.                  or by punctuation marks.  A "WORD" is a string
  708.                  of characters separated by white space.
  709.                  
  710.      -> w  4w        Move ahead 1 or 4 words 
  711.      -> W  4W        Move ahead 1 or 4 WORDS
  712.     
  713.      -> b  4b        Move back 1 or 4 words 
  714.      -> B  4B        Move back 1 or 4 WORDS
  715.     
  716.      -> e  4e        Move ahead to 1st or 4th end-of-word character
  717.      -> E  4E        Move to end of 1st or 4th end-of-WORD character
  718.     
  719.      -> <ctl-D> 12<ctl-D>
  720.                   Scroll down lines
  721.      -> <ctl-U> 12<ctl-U>
  722.                   Scroll up lines
  723.                 The default number of lines scrolled is 8.
  724.  
  725.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  726.  
  727.  
  728.  
  729.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 12
  730.  
  731.  
  732.                 If an integer, for example 12, precedes 
  733.                 the command, the number of lines scrolled 
  734.                 will be 12 and the default thereafter will 
  735.                 be 12.  In the current version, the integer
  736.                 can be no larger than larger than half 
  737.                 the screen size in lines.  If a larger 
  738.                 value of n is specified, it will be reduced 
  739.                 to half the screen size.
  740.     
  741.      -> <ctl-F>    4<ctl-F>    
  742.                  Jump ahead 1 or 4 screenfulls (when jumping 1 
  743.                      screenfull, retain 2 lines for continuity)
  744.      -> <ctl-B> 4<ctl-B>        
  745.                  Jump back 1 or 4 screenfulls (when jumping 1
  746.                      screenfull, retain 2 lines for continuity)
  747.     
  748.      -> G        Jump ahead to end of file
  749.     nG        Jump directly to line number n
  750.     
  751.      -> 'x        Jump to start of line marked "x" (see "m" command)
  752.     `x        Like 'x but also jumps to marked cursor location
  753.     
  754.         ''        Jump to start of line that cursor was on before last 
  755.                 "big move" (more than a screenfull away)
  756.     ``        Like '' but also jumps to marked cursor location
  757.                 within the line
  758.     
  759.     -  4-        Move up 1 or 4 lines to 1st non-white char in line
  760.     +  4+        Move down 1 or 4 lines to first non-white character
  761.  
  762.     ^        Move to first non-white character in current line
  763.     
  764.     <cr>  4<cr>    Move down 1 or 4 lines to 1st non-white char in line
  765.  
  766.     <sp>  4<sp>    Move right 1 or 4 chars on current line (same as "4l")
  767.     
  768.             Note: In the commands below: 
  769.                           A "word" is a string of letters separated by 
  770.                             white space or by punctuation marks.
  771.                   A "WORD" is a string of letters separated by
  772.                     white space.
  773.                     
  774.     )  4)        Move ahead 1 or 4 sentences
  775.     (  4(        Move back 1 or 4 sentences
  776.     
  777.               Note:    A '.' followed by two spaces or a '.' as the 
  778.                 last non-white character on a line is 
  779.                 interpreted as the end of a sentence.  This 
  780.                 search command does not wrap around the
  781.                 beginning or end of the file.
  782.             
  783.     }  4}        Move ahead 1 or 4 paragraphs
  784.     {  4{        Move back 1 or 4 paragraphs
  785.     
  786.                 Note: A paragraph is a section of text 
  787.                 delimited by blank lines, the start or 
  788.                 end of a file, lines that begin with a 
  789.                 space or any of the characters: .-_=*
  790.  
  791.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  792.  
  793.  
  794.  
  795.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 13
  796.  
  797.  
  798.                 or a <ctl-X>.
  799.     
  800.     <ctl-E> 4<ctl-E>
  801.             Scroll down 1 or 4 lines, keeping current 
  802.                 cursor position if possible
  803.     <ctl-Y> 4<ctl-Y>
  804.             Scroll up 1 or 4 lines, keeping current cursor 
  805.                 position if possible
  806.     
  807.     H        Jump to first line on screen
  808.     M        Jump to middle line on screen
  809.     L        Jump to last line on screen
  810.     
  811.     z<cr>           Redraw screen with current line at top of screen.
  812.     z.<cr>            Redraw screen with current line at middle of screen.    
  813.     z-<cr>            Redraw screen with current line at bottom of screen.
  814.                 If an integer, for example 6, precedes any
  815.                 of the three 'z' commands above, any of 
  816.                 the three commands above, the screen will 
  817.                 be drawn about line <n> rather than 
  818.                 the current line.
  819.                 '?', the search direction will be reversed.
  820.     
  821.     %        Starting from either a ( or { character, jump 
  822.                 forward to the matching ) or }.  Starting 
  823.                 from ) or } jump back to the matching ( or {.
  824.                 Any of the characters (){} that are within 
  825.                 quotation marks are ignored.
  826.     
  827.     :[range]p<cr>        Print command.  Prints all lines in 
  828.                     specified range.
  829.     
  830.                 EXAMPLES:
  831.                 :g/string/p<cr>    prints all lines that 
  832.                             contain "string"
  833.                 :.,$p<cr>    prints all lines from cursor 
  834.                             to end of file
  835.                   
  836.     :spec1<cr>    Cursor moves to line number "spec1".  See "LINE RANGE"
  837.                 (Section 3) below for a description of what
  838.                 "spec1" may be.  
  839.                 
  840.                 EXAMPLES:
  841.                     :35<cr>        jump to line 35
  842.                     :$-44<cr>    jump to 44th line 
  843.                                 above last line
  844.                 
  845.                 Note: This is one of a series of "ex" commands
  846.                 that are available in UNIX vi through the
  847.                 colon ":" commands.  This particular command
  848.                 has limited usefulness. The first example above 
  849.                 is equivalent to the vi command "35G", which
  850.                 is quicker to type.  The second command does
  851.                 have some value since it is slightly simpler 
  852.                 than the vi equivalent "G44k".
  853.  
  854.  
  855.  
  856.  
  857.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  858.  
  859.  
  860.  
  861.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 14
  862.  
  863.  
  864.     2.2 FINDING TEXT PATTERNS
  865.     ----------------------------------------------------------------------
  866.      -> /pattern/<cr>   Jump to next occurrence of string "pattern"
  867.      -> ?pattern?<cr>   Jump to previous occurrence of string "pattern"
  868.                 (If, before you hit the <cr>, your wish 
  869.                 to cancel the pattern search, you can 
  870.                 backspace over the '?' or '/' character 
  871.                 and the cursor will return to the text. 
  872.                 The trailing '/' or '?' after 'pattern' 
  873.                 is optional.)
  874.      -> /<cr>        Jump to next occurrence of last requested "pattern"
  875.      -> ?<cr>        Jump to previous occurrence of last requested "pattern"
  876.     
  877.             In "pattern" allowable meta characters are:
  878.             
  879.             . matches any character
  880.             ^ matches the beginning of a line
  881.             $ matches the end of line
  882.               
  883.             x* matches zero or more consecutive characters 'x'
  884.             .* matches zero or more occurrences of any character
  885.               
  886.             [xyz] matches any single char in the string 'xyz'
  887.             [^xyz] matches any single char except those in 
  888.                 the string 'xyz'
  889.             [a-z] matches any char between 'a' and 'z' inclusive,
  890.             [^a-z] matches any char but those between 'a' and 'z'
  891.               
  892.             \ preceding a meta char removes its meta meaning.
  893.                 
  894.     /pattern/z<cr>    Redraw screen with next occurrence of string "pattern"
  895.     /pattern/z.<cr>     at the top, middle, or bottom of the screen (as
  896.     /pattern/z-<cr>        above).  If the '/' delimiters are replaced by
  897.               
  898.      -> n        Repeat last pattern search
  899.      -> N        Repeat last pattern search but reverse search direction
  900.     
  901.      -> fx  4fx        Move ahead to 1st or 4th occurrence of character 'x' 
  902.                 on current line
  903.      -> Fx  4Fx        Move back to 1st or 4th previous occurrence of 
  904.                 character 'x' on current line
  905.                 
  906.      -> ;  4;        Repeat last fx or Fx command 1 or 4 times
  907.      -> ,  4,          Repeat last fx or Fx command 1 or 4 times, 
  908.      
  909.                 but reverse search direction
  910.     tx  4tx        Move ahead to 1st or 4th char preceding next 
  911.                 occurrence of char 'x' on current line
  912.     Tx  4Tx        Move back to 1st or 4th character following previous
  913.                 occurrence of char 'x' on current line
  914.     
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  924.  
  925.  
  926.  
  927.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 15
  928.  
  929.  
  930.     2.3 INSERTING AND APPENDING TEXT
  931.     -----------------------------------------------------------------------
  932.     
  933.      -> <esc>        End text modification and return to command mode
  934.             (See also the ":set esc2<cr>" command)
  935.  
  936.      -> u        Undo the last text modification change
  937.  
  938.      -> .        Repeat the last text modification change
  939.  
  940.      -> a        Append text until <esc>
  941.      -> A        Append text at end of line until <esc>
  942.  
  943.      -> i        Insert text until <esc>
  944.      -> I        Insert text at beginning of line until <esc>
  945.  
  946.      -> o        Open file below current line and insert text until <esc>
  947.      -> O        Open file above current line and insert text until <esc>
  948.  
  949.      -> <ctl-H>        Backspace (and erase) one character 
  950.                 Some keyboards have an explicit "backspace"
  951.                 key which you may also use.  On some
  952.                 keyboards you may also use the "delete"
  953.                 key.  This varies from machine to machine.
  954.             
  955.      -> <ctl-W>        Backspace (and erase) one word
  956.                 to protect text entered from previous text 
  957.                 modification commands, neither of these 
  958.                 commands will backspace beyond the point 
  959.                 where the currently active text insertion 
  960.                 code was issued.  Attempting to backspace 
  961.                 any further causes a "beep".
  962.  
  963.     <ctl-V>        Accept next character literally; ignore special meaning
  964.                 (allows entry of <ctl-H>, <ctl-W>, or 
  965.                 <esc> char)
  966.     
  967.     2.4 DELETING TEXT
  968.     -----------------------------------------------------------------------
  969.  
  970.      -> D        Delete remaining text in current line
  971.     d$        Delete remaining text in current line
  972.     
  973.      -> dd  4dd        Delete 1 or 4 lines
  974.     
  975.      -> dG        Delete current line through last line in file
  976.     
  977.      -> dw  4dw        Delete ahead 1 or 4 words 
  978.      -> dW  4dW        Delete ahead 1 or 4 WORDS
  979.     
  980.      -> de  4de        Delete 1 or 4 words up to the last char
  981.      -> dE  4dE        Delete 1 or 4 WORDS up to the last char
  982.     
  983.     db  4db        Delete back 1 or 4 words
  984.     dB  4dB        Delete back 1 or 4 WORDS
  985.     
  986.     dl  4dl         Delete 1 or 4 characters
  987.     
  988.  
  989.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  990.  
  991.  
  992.  
  993.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 16
  994.  
  995.  
  996.     dfx 4dfx    Delete characters from cursor position to 1st or 4th
  997.                 next occurrence of char 'x'
  998.     dFx 4dFx    Delete characters from cursor position to 1st or 4th
  999.                 previous occurrence of char 'x'
  1000.                 
  1001.     dtx 4dtx    Delete characters from cursor position up to character 
  1002.                 preceding 1st or 4th next occurrence of char 'x'
  1003.     dTx 4dTx    Delete characters from cursor position to character 
  1004.                 following 1st or 4th previous char 'x'
  1005.     
  1006.     d)  4d)        Delete from cursor position forward to end of 1st
  1007.                 or 4th sentence
  1008.     d(  4d(        Delete from cursor position backward to start 
  1009.                 of 1st or 4th previous sentence
  1010.     d}  4d}        Delete from cursor position forward to end of 
  1011.                 1st or 4th paragraph
  1012.     d{  4d{        (This command is not implemented in current version
  1013.                 of Oak Hill Vi (TM))
  1014.     
  1015.     dj  4dj        Delete current line, or delete current line plus
  1016.                 4 lines below current line
  1017.     dk  4dk        Delete current line, or delete current line plus
  1018.                 4 lines above current line
  1019.     dl  4dl        Delete character at current cursor position (equiv
  1020.                 to command "x"), or delete 4 characters 
  1021.     dh  4dh        Delete character to left of cursor, or delete 4
  1022.                 characters to left of cursor
  1023.                 
  1024.             Note: If you prefer an alternative syntax, you 
  1025.             may invert the integer multiplier and the "d"
  1026.             operator in the above commands.  For example,
  1027.             "d4j" is equivalent to "4dj".
  1028.             
  1029.     d0        Delete from beginning of line through cursor position
  1030.     
  1031.      -> d'x        Delete text delimited by current line and 
  1032.                 line 'x (see "mx" command, Section 2.7)
  1033.     d`x        Delete text delimited by cursor position and 
  1034.                 position `x 
  1035.     
  1036.     d4G        Delete line number 4 through the current line
  1037.     
  1038.     [range]d    Delete lines specified in "range" -- see 
  1039.                 "LINE RANGE" below (Section 3) 
  1040.     
  1041.     2.5 CHANGING TEXT
  1042.     -----------------------------------------------------------------------
  1043.  
  1044.             Note: "Changing" text is like "deleting"
  1045.             text except that as soon as you've deleted
  1046.             the text, the program is in the input mode,
  1047.             waiting for you to type in the replacement text.
  1048.  
  1049.      -> C        Change remaining text in current line
  1050.     c$        Change remaining text in current line
  1051.     
  1052.      -> cc  4cc        Change 1 or 4 lines
  1053.     
  1054.  
  1055.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1056.  
  1057.  
  1058.  
  1059.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 17
  1060.  
  1061.  
  1062.      -> cG        Change current line through last line in file
  1063.     
  1064.      -> cw  4cw        Change 1 or 4 words forward in file 
  1065.      -> cW  4cW        Change 1 or 4 WORDS forward in file
  1066.     
  1067.      -> ce  4ce        Change 1 or 4 words up to the last char
  1068.      -> cE  4cE        Change 1 or 4 WORDS up to the last char
  1069.     
  1070.     cb  4cb        Change 1 or 4 words backward in file
  1071.     cB  4cB        Change 1 or 4 WORDS backward in file
  1072.     
  1073.     cl  4cl         Change 1 or 4 characters
  1074.     
  1075.     cfx  4cfx    Change characters from cursor position to 1st or 4th
  1076.                 next occurrence of char 'x'
  1077.     cFx  4cFx    Change characters from cursor position to 1st or 4th
  1078.                 previous occurrence of char 'x'
  1079.                 
  1080.     ctx  4ctx    Change characters from cursor position up to character 
  1081.                 preceding 1st or 4th next occurrence of char 'x'
  1082.     cTx  4dTx    Change characters from cursor position to character 
  1083.                 following 1st or 4th previous char 'x'
  1084.     
  1085.     c)  4c)        Change from cursor position forward to end of 1st
  1086.                 or 4th sentence
  1087.     c(  4c(        Change from cursor position backward to start 
  1088.                 of 1st or 4th previous sentence
  1089.     c}  4c}        Change from cursor position forward to end of 
  1090.                 1st or 4th paragraph
  1091.     c{  4c{        (This command is not implemented in current version
  1092.                 of Oak Hill Vi (TM))
  1093.     
  1094.     cj  4cj        Change current line, or change current line plus
  1095.                 4 lines below current line
  1096.     ck  4ck        Change current line, or change current line plus
  1097.                 4 lines above current line
  1098.     cl  4cl        Change character at current cursor position (equiv
  1099.                 to command "x"), or change 4 characters 
  1100.     ch  4ch        Change character to left of cursor, or change 4
  1101.                 characters to left of cursor
  1102.                 
  1103.             Note: If you prefer an alternative syntax, you 
  1104.             may invert the integer multiplier and the "c"
  1105.             operator in the above commands.  For example,
  1106.             "c4j" is equivalent to "4cj".
  1107.             
  1108.     c0        Change from beginning of line through cursor position
  1109.     
  1110.      -> c'x        Change text delimited by current line and 
  1111.                 line 'x (see "mx" command, Section 2.7)
  1112.     c`x        Change text delimited by cursor position and 
  1113.                 position `x (see "mx" command, Section 2.7)
  1114.     
  1115.     c4G        Change line number 4 through the current line
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1122.  
  1123.  
  1124.  
  1125.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 18
  1126.  
  1127.  
  1128.     2.6 YANKING (COPYING) TEXT INTO YANK/DELETE BUFFER 
  1129.     -----------------------------------------------------------------------
  1130.     
  1131.                         Note: When you "yank" or "delete" text, you
  1132.                         copy it into a temporary buffer.  You may then
  1133.                         "put" or "paste" (see "p" and "P" commands
  1134.                         below) this text at some other point in the
  1135.                         file.  
  1136.  
  1137.     Y   4Y        Yank remaining text in current line
  1138.      -> yy  4yy        Yank 1 or 4 lines
  1139.     
  1140.      -> y$        Yank remaining text in current line
  1141.     
  1142.      -> yG        Yank current line through last line in file
  1143.     
  1144.      -> yw  4yw        Yank ahead 1 or 4 words 
  1145.      -> yW  4yW        Yank ahead 1 or 4 WORDS
  1146.     
  1147.     ye  4ye        Yank 1 or 4 words up to the last char
  1148.     yE  4yE        Yank 1 or 4 WORDS up to the last char
  1149.     
  1150.     yb  4yb        Yank back 1 or 4 words
  1151.     yB  4yB        Yank back 1 or 4 WORDS
  1152.     
  1153.     yl  4yl         Yank 1 or 4 characters
  1154.     
  1155.     yfx  4yfx    Yank characters from cursor position to 1st or 4th
  1156.                 next occurrence of char 'x'
  1157.     yFx  4yFx    Yank characters from cursor position to 1st or 4th
  1158.                 previous occurrence of char 'x'
  1159.                 
  1160.     ytx  4ytx    Yank characters from cursor position up to character 
  1161.                 preceding 1st or 4th next occurrence of char 'x'
  1162.     yTx  4yTx    Yank characters from cursor position to character 
  1163.                 following 1st or 4th previous char 'x'
  1164.     
  1165.     y)  4y)        Yank from cursor position forward to end of 1st
  1166.                 or 4th sentence
  1167.     y(  4y(        Yank from cursor position backward to start 
  1168.                 of 1st or 4th previous sentence
  1169.     y}  4y}        Yank from cursor position forward to end of 
  1170.                 1st or 4th paragraph
  1171.     y{  4y{        (This command is not implemented in current version
  1172.                 of Oak Hill Vi (TM))
  1173.     
  1174.     yj  4yj        Yank current line, or yank current line plus
  1175.                 4 lines below current line
  1176.     yk  4yk        Yank current line, or yank current line plus
  1177.                 4 lines above current line
  1178.     yl  4yl        Yank character at current cursor position (equiv
  1179.                 to command "x"), or yank 4 characters 
  1180.     yh  4yh        Yank character to left of cursor, or yank 4
  1181.                 characters to left of cursor
  1182.                 
  1183.             Note: If you prefer an alternative syntax, you 
  1184.             may invert the integer multiplier any the "y"
  1185.             operator in the above commands.  For example,
  1186.  
  1187.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1188.  
  1189.  
  1190.  
  1191.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 19
  1192.  
  1193.  
  1194.             "y4j" is equivalent to "4yj".
  1195.             
  1196.     y0        Yank from beginning of line through cursor position
  1197.     
  1198.     y'x        Yank text delimited by curr line and 
  1199.                 line 'x (see "mx" command, Section 2.7)
  1200.     y`x        Yank text delimited by cursor position and 
  1201.                 position `x 
  1202.     
  1203.     y4G        Yank line number 4 through the current line
  1204.     
  1205.     
  1206.     
  1207.     2.7 OTHER TEXT MODIFICATION COMMANDS 
  1208.     -----------------------------------------------------------------------
  1209.     
  1210.      -> r        Replace single character and return to command mode
  1211.  
  1212.      -> R        Replace text on current line ("overstrike") until <esc>
  1213.     
  1214.      -> s  4s        Substitute new characters for current character 
  1215.                 until <esc>
  1216.    
  1217.      -> S  4S           Substitute new characters for current line until <esc>
  1218.     
  1219.      -> x  4x        Delete 1 or 4 characters
  1220.     X  4X        Delete 1 or 4 character before the cursor
  1221.     
  1222.      -> p        Put last deleted/yanked lines below current line
  1223.      -> p        Put last deleted/yanked text after current 
  1224.                 cursor position
  1225.                 
  1226.      -> P        Put last deleted/yanked lines above current line
  1227.      -> P        Put last deleted/yanked text before current 
  1228.                 cursor position 
  1229.                 
  1230.             Note: Whether "text" or "lines" apply in the 
  1231.                 "put" commands above depends on whether
  1232.                 a text string or text lines were yanked,
  1233.                 deleted, or stored into the yank/delete
  1234.                 buffer.
  1235.  
  1236.      -> J        Join the current and following line into a single line
  1237.  
  1238.     ~        Change case of character at cursor location and 
  1239.                 advance to next character. (Undo doesn't 
  1240.                 work for this command; this command is 
  1241.                 its own undo.)
  1242.                 
  1243.     >> 4>>        Shift 1 or 4 lines one tab-shift to the right
  1244.     << 4<<        Shift 1 or 4 lines one tab-shift to the left
  1245.     
  1246.     >adr        Shift from current line through "adr" one tab-shift
  1247.                 to the right
  1248.     <adr        Shift from current line through "adr" one tab-shift
  1249.                 to the left
  1250.                 
  1251.                 EXAMPLES:
  1252.  
  1253.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1254.  
  1255.  
  1256.  
  1257.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 20
  1258.  
  1259.  
  1260.                 
  1261.                 >'a
  1262.                 </howdy/
  1263.                 <73<cr>
  1264.                 
  1265.                 The first example will right-shift each line
  1266.                 of text from the current line through the 
  1267.                 one marked "a" (see the "mark" command).
  1268.                 
  1269.                 The second example will left-shift each 
  1270.                 line of text from the current line through
  1271.                 the one where the string "howdy" appears.
  1272.                 
  1273.                 The third example will left-shift each
  1274.                 line of text from the current line through
  1275.                 line number 73.
  1276.  
  1277.  
  1278.     :abbr macroname string1<cr>
  1279.     :unabbr macroname<cr>
  1280.                         Abbreviate 'string1' with 'macroname' while in
  1281.                         input mode.  Every time the string 'macroname'
  1282.                         is entered by itself (surrounded by spaces,
  1283.                         tabs, carriage returns, or punctuation marks
  1284.                         like .,!? etc), it will be replaced by
  1285.                         string1, just as if you had typed string1
  1286.                         instead of 'macroname'.
  1287.         
  1288.             EXAMPLE: If you type --
  1289.         
  1290.                 :abbr rr requirements<cr>
  1291.             
  1292.             then thereafter, while in the input mode, you type
  1293.         
  1294.                 we wrote new rr for the client
  1295.             
  1296.             as soon as the space after 'rr' is typed, the 'rr'
  1297.             will be replaced by 'requirements', leaving you with
  1298.         
  1299.                 we wrote new requirements for the client
  1300.             
  1301.             This capability is good for frequently typed, lengthy
  1302.             words.
  1303.         
  1304.             The :unabbr command cancels the :abbr command with
  1305.             the specified macroname.
  1306.         
  1307.             You can have up to 10 macronames active at a time.
  1308.             The ":set<cr>" command will show you which 
  1309.             abbreviations are active at any time.
  1310.  
  1311.      -> :[range]s/string1/string2/[g][p]<cr>
  1312.       
  1313.                         String substitution command.  For the range of
  1314.                         lines indicated (see "Line Ranges", Section 3),
  1315.                         substitute first occurrence of string1 with
  1316.                         string2.  If the optional 'g' appears after the '/'
  1317.                         that follows string2, every occurrence of string1
  1318.  
  1319.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1320.  
  1321.  
  1322.  
  1323.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 21
  1324.  
  1325.  
  1326.                         (not just the first) will be replaced by string2.
  1327.             
  1328.             If the 'p' option appears, each altered line
  1329.             will be printed at the bottom of the screen.
  1330.             
  1331.             If no range of lines is indicated, substitutions 
  1332.             will take place on the current line only.  
  1333.  
  1334.             The '/' delimiter character may be any character 
  1335.             that does not appear in string1 or string2.  
  1336.             (The only exception is that if no line specification
  1337.             is supplied, the string delimiter character must 
  1338.             be a '/' to avoid ambiguity).
  1339.             
  1340.             String1 may contain meta characters.  
  1341.             
  1342.             A '&' in string2 will be replaced by all of string1.  
  1343.             Use '\&' if you want to insert a '&' character.  
  1344.             The trailing '/' delimiter after string2 is optional.  
  1345.     
  1346.             The "undo" command will "undo" the substitutions
  1347.             made by this command only if there is sufficient
  1348.             room in memory to store the range of lines selected.
  1349.             If there is not sufficient room, the substitutions
  1350.             can still be made, but a warning message will be
  1351.             printed first.
  1352.             
  1353.             EXAMPLES:
  1354.             
  1355.             :s/sam/bill<cr>
  1356.             :%s/bcr/Bell Communications Research/g<cr>
  1357.             :.,$s/^/     /<cr>
  1358.             :'a,'bs/ *$//<cr>
  1359.             :g/howdy/s//doody/gp<cr>
  1360.             
  1361.             The first example will substitute "bill" for 
  1362.             the first occurrence of "sam" on the current line
  1363.             
  1364.             The second example will substitute "Bell Communications
  1365.             Research" for "bcr" for every line in the file.
  1366.             
  1367.             The third example will put five spaces at the 
  1368.             front end of the current line through the last
  1369.             line of the file.
  1370.             
  1371.             The fourth example will remove (by substituting
  1372.             nothing for) all trailing spaces from the end
  1373.             of lines marked 'a' through 'b'.
  1374.             
  1375.             The fifth example will replace all occurrences
  1376.             of "howdy" by "doody" and will print each line
  1377.             altered at the bottom of the screen.
  1378.             
  1379.     &        Repeat the last :[range]s command for the current
  1380.             line only.
  1381.  
  1382.     :[range]d<cr>    Deletion command.  Will delete lines in specified
  1383.             range.  
  1384.  
  1385.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1386.  
  1387.  
  1388.  
  1389.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 22
  1390.  
  1391.  
  1392.             
  1393.             EXAMPLES:
  1394.             
  1395.             :/string/d<cr>    deletes next line in which "string"
  1396.                     appears
  1397.             :g/string/d<cr> deletes all lines in which "string"
  1398.                     appears
  1399.             :g/^$/d<cr>    deletes all blank lines
  1400.  
  1401.     :[range]t[spec]<cr>
  1402.  
  1403.             Transfer command.  Copies lines in specified
  1404.             [range] and inserts the copied lines just below
  1405.             the line named in [spec].  This is a UNIX "ed"
  1406.             or "ex" command.  Note you can do the same
  1407.             thing with "yank" and "put" commands.
  1408.             
  1409.             EXAMPLES:
  1410.             
  1411.             :15,20t35<cr>    Copies lines 15 through 20 and
  1412.                     inserts them just below line 35.
  1413.                     
  1414.             :/Sam/,/Bill/t/Dave/<cr>
  1415.                     Copies lines from the one
  1416.                     containing "Sam" through the
  1417.                     one containing "Bill" and
  1418.                     inserts them just below the
  1419.                     line containing "Dave".
  1420.             
  1421.     :[range]m[spec]<cr>     
  1422.  
  1423.             Move command.  Deletes lines in specified
  1424.             [range] and inserts the deleted lines just below
  1425.             the line named in [spec].  This is a UNIX "ed"
  1426.             or "ex" command.  Note you can do the same
  1427.             thing with "delete" and "put" commands.
  1428.             
  1429.             EXAMPLES:
  1430.             
  1431.             :1,.m$<cr>    Deletes lines 1 through the
  1432.                     current line and moves them
  1433.                     to the bottom of the file.
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1452.  
  1453.  
  1454.  
  1455.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 23
  1456.  
  1457.  
  1458.     2.8 WRITING, READING, AND EXITING
  1459.     -----------------------------------------------------------------------
  1460.      -> ZZ        Write out (save) current buffer & quit editor.
  1461.  
  1462.      -> :w<cr>        Write buffer out (save) to default file name.
  1463.     :wq<cr>        Write buffer out (save) to default file name
  1464.                 and quit editor.
  1465.     
  1466.      -> :w filename<cr>    Write buffer out to "filename".  This command will
  1467.                 not overwrite an existing already file 
  1468.                 with the same name. 
  1469.      -> :w! filename<cr>
  1470.             Write buffer out to "filename" unconditionally.  This
  1471.                 command will overwrite an already existing 
  1472.                 file with the same name.
  1473.               
  1474.      -> :q<cr>        Quit editor and return to MS-DOS.  For safety, 
  1475.                 the editor will not quit unless you have 
  1476.                 written out the buffer since the last 
  1477.                 change was made.
  1478.                 
  1479.      -> :q!<cr>        Quit editor unconditionally and return to MS-DOS.
  1480.                 Any editing changes since your last "write"
  1481.                 will be lost.
  1482.  
  1483.      -> :r filename<cr>    Read "filename" into buffer following the current line.
  1484.  
  1485.     :e filename<cr>    Dump current file buffer and edit "filename".  
  1486.                                 No "filename" will cause current
  1487.                                 filename to be used.  For safety,
  1488.                                 command is rejected if the buffer has
  1489.                                 been altered since the last write to
  1490.                                 disk.  This command, as well as "e!"
  1491.                                 and "we" will clear the (unnamed)
  1492.                                 yank/delete buffer and the buffer used
  1493.                                 to store the repeat-last-command
  1494.                                 command (".").
  1495.                 
  1496.     :e! filename<cr>
  1497.             Dump current file buffer and edit "filename" 
  1498.                 (unconditionally).
  1499.                 
  1500.     :we filename<cr>
  1501.             (NON-UNIX) Write out current buffer to disk, 
  1502.                 dump buffer, and begin editing "filename"
  1503.  
  1504.     :[range]w[>>] filename<cr>    
  1505.             Write [and append] command with optional line range 
  1506.                 specification (see Line Range discussion) -- 
  1507.                 if the '>>' follows the 'w', buffer contents
  1508.                 will be appended to filename.  
  1509.  
  1510.                 EXAMPLES: 
  1511.  
  1512.                     :'a,$w>> george<cr>
  1513.                     :1,.w albert<cr>
  1514.  
  1515.                 The first example will append to file "george" 
  1516.  
  1517.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1518.  
  1519.  
  1520.  
  1521.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 24
  1522.  
  1523.  
  1524.                 the text delimited by line 'a and the 
  1525.                 last line (inclusive).  The second example
  1526.                 will write out the first line through the 
  1527.                 current line to file "albert".
  1528.  
  1529.     vi +[command] file[s]    (Executed from MS-DOS prompt)
  1530.     :e +[command] file[s]     You can invoke Oak Hill Vi (TM) with an 
  1531.                 initial command that will be executed 
  1532.                 as soon as your file has been read. 
  1533.             
  1534.                 EXAMPLES:
  1535.             
  1536.                 vi + file    Edit "file" starting at last
  1537.                         line.
  1538.                     
  1539.                 vi +3        Edit "file" starting at line 3
  1540.             
  1541.                 vi +/string file
  1542.                         Edit "file" starting at the 
  1543.                         first line were "string" 
  1544.                         appears
  1545.             
  1546.                 vi +"command" file
  1547.                         Edit "file" and execute 
  1548.                         "command" immediately 
  1549.                         after the file has
  1550.                         been read
  1551.  
  1552.                                 Note that if "string" or "command" contains
  1553.                                 spaces, they should be enclosed in
  1554.                                 quotation marks or Oak Hill Vi (TM) will
  1555.                                 confuse the arguments with file names.
  1556.             
  1557.                 EXAMPLE:
  1558.             
  1559.                 vi "+/Now is the time" file
  1560.             
  1561.                         is the correct way to start
  1562.                         editing "file" at the line that
  1563.                         contains the string "Now is 
  1564.                         the time"
  1565.  
  1566.                 All of the above features also work if you
  1567.                 use the :e command from inside the editor.
  1568.                 For example,
  1569.  
  1570.                 :e +3j file<cr>
  1571.  
  1572.                                 will edit "file" starting at line 3.  In
  1573.                                 the current version of Oak Hill Vi (TM),
  1574.                                 however, embedded blanks in the command
  1575.                                 string are not allowed and will cause parts
  1576.                                 of the command string to be interpreted as
  1577.                                 file names.
  1578.             
  1579.     :n<cr>            Edit next file name in the queue.  See 
  1580.                     Section 1.4
  1581.     :r <n1> <n2> filename<cr> 
  1582.  
  1583.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1584.  
  1585.  
  1586.  
  1587.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 25
  1588.  
  1589.  
  1590.             (NON-UNIX) Read lines n1 through n2 from filename 
  1591.                 into buffer below current cursor position.
  1592.                 Requires that (1 <= n1 <= n2 <= 32000).  If
  1593.                 n2 is larger than the last line, read will
  1594.                 proceed to end of file.  "$" may be used in
  1595.                 place of n2 to represent 32000.  This
  1596.                 command, combined with write (:w) commands,
  1597.                 is useful for splitting large files into
  1598.                 smaller pieces that Oak Hill Vi (TM) can
  1599.                 handle.  (See also the discussion of the
  1600.                 "slice" utility program below.)
  1601.  
  1602.                 EXAMPLE:
  1603.  
  1604.                     :r 100 200 george<cr>
  1605.  
  1606.                 will read lines 100 through 200 of file george
  1607.                 into the buffer.
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1650.  
  1651.  
  1652.  
  1653.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 26
  1654.  
  1655.  
  1656.     2.9 OPTION-SETTING AND OTHER COMMANDS
  1657.     -----------------------------------------------------------------------
  1658.             
  1659.     *** OPTION SETTING COMMANDS ***
  1660.     
  1661.     :set all<cr>    Display current setting of all settable options.
  1662.     :set <cr>           Also show the full directory path in which the
  1663.                         VISETUP.VI file (if any) was found.
  1664.  
  1665.     :set ai<cr>    Turn on autoindent
  1666.                 While inserting text, automatically copy the
  1667.                 indentation (white space characters) used on
  1668.                 the previous line.  You can backspace over
  1669.                 the indentation characters with <ctl-D>.
  1670.     :set noai<cr>    Turn off autoindent (default)
  1671.  
  1672.     :set aw<cr>    Turn on autowrite (default)
  1673.                 Before escaping to DOS (with :! command) write
  1674.                 the buffer out to disk if it has been altered
  1675.                 since the last save.
  1676.     :set noaw<cr>    Turn off autowrite
  1677.  
  1678.     :set beep<cr>    Have computer speaker sound a "beep" on user errors
  1679.                 (default).
  1680.     :set nobeep<cr> Keep computer speaker silent on errors -- instead 
  1681.                                 flash a "BEEP!" message briefly at the
  1682.                                 bottom of the screen.  This option is
  1683.                                 useful if (for example) you are using a
  1684.                                 laptop machine in a conference room and
  1685.                                 wish to avoid annoying those around you
  1686.                                 with a beeping computer.
  1687.             
  1688.     :set ctr=n<cr>  (NON-UNIX) Set column about which lines will be 
  1689.                 centered when using the ":center" command.  
  1690.                 Default n=40.
  1691.             
  1692.     :set cursor=underscore<cr>
  1693.     :set cursor=box<cr>
  1694.             (NON-UNIX) Set cursor type.  On some machines, 
  1695.                                 particularly those with LCD displays, a
  1696.                                 simple underscore for the cursor is hard to
  1697.                                 see, so Oak Hill Vi (TM) uses a "flashing box"
  1698.                                 cursor as the default.  On a CRT, the
  1699.                                 traditional flashing underscore is
  1700.                                 preferred by some users.  This set command
  1701.                                 allows the user to set to cursor type to
  1702.                                 match his/her preference.  The default is
  1703.                                 the underscore.
  1704.             
  1705.     :set esc2=x<cr>    (NON-UNIX) On some keyboards the escape key is clumsy 
  1706.                                 to reach.  This command allows the
  1707.                                 character 'x' to serve the same purpose,
  1708.                                 where 'x' can be any character.  Reasonable
  1709.                                 choices are <ctl-O> or <ctl-J>.  Caution:
  1710.                                 If you choose a character that is already
  1711.                                 serving another purpose, for example 'a',
  1712.                                 you will disable that function!  Note that
  1713.                                 <ctl-[> is equivalent to hitting an escape
  1714.  
  1715.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1716.  
  1717.  
  1718.  
  1719.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 27
  1720.  
  1721.  
  1722.                                 key.
  1723.             
  1724.     :set colors=[bright] foreground [on] background<cr>
  1725.  
  1726.             (NON-UNIX) Set foreground and background colors. 
  1727.                 The color names must be chosen as shown 
  1728.                 below.
  1729.         
  1730.                 Available Colors
  1731.                 ------------------
  1732.                 black
  1733.                 red
  1734.                 green
  1735.                 yellow
  1736.                 blue
  1737.                 magenta
  1738.                 cyan
  1739.                 white
  1740.             
  1741.                 To get bold foreground characters, include the
  1742.                 word "bright" before the foreground color name.
  1743.             
  1744.                 Only the first 3 letters of each color name
  1745.                 need or key word need be used, and the "on"
  1746.                 key word is optional.
  1747.             
  1748.                 Valid EXAMPLES:
  1749.             
  1750.                 :set colors = white on blue<cr>
  1751.                 :set colors = bright yellow on red<cr>
  1752.                 :set col bri whi red<cr>
  1753.             
  1754.                                 If colors are not explicitly set, Oak Hill
  1755.                                 Vi (TM) will default to the colors being
  1756.                                 used when the program was called.  If the
  1757.                                 colors are explicitly set, Oak Hill Vi (TM)
  1758.                                 will return to the starting colors when the
  1759.                                 program exits.
  1760.  
  1761.     :set ic<cr>    Ignore case (upper/lower) when doing string searches
  1762.     :set noic<cr>   Do not ignore case when doing string searches (default)
  1763.  
  1764.     :set idm<cr>    Print "Input Mode" identification tag in lower right
  1765.                                 corner of screen after "i", "a", "o", "O",
  1766.                                 "cc", "r", "s", or other commands that
  1767.                                 expect input text from the keyboard.
  1768.                                 (default)
  1769.     :set noidm<cr>    Do not print the "Input Mode" identification tag.
  1770.  
  1771.     :set lines=n<cr>
  1772.             (NON-UNIX) Resets number of lines screen can display.
  1773.                 This number is not arbitrary; n must match
  1774.                 the number of lines on your screen.  In most
  1775.                 cases, the default value of 25 is correct.
  1776.             
  1777.     :set magic    Recognize meta characters when doing pattern searches.
  1778.     :set nomagic    Do not recognize meta characters when doing pattern
  1779.                 searches.  Interpret each character literally.
  1780.  
  1781.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1782.  
  1783.  
  1784.  
  1785.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 28
  1786.  
  1787.  
  1788.                 See Section 2.4.
  1789.  
  1790.     :set nu<cr>    Turn on line number option
  1791.     :set nonu<cr>    Turn off line number option (default)
  1792.     
  1793.     :set press<cr>    Require a carriage-return after program greeting
  1794.             screen (default)
  1795.     :set nopress<cr>Do not require carriage-return after greeting screen
  1796.  
  1797.     :set ts=n<cr>   Set tab stops every n spaces --
  1798.                                 n can be any number from 1 to 40.
  1799.  
  1800.     :set wm=n<cr>   Set wrap margin to n spaces -- automatically generates
  1801.                                 carriage returns when n or fewer spaces
  1802.                                 remain on the line.  ":set wm=0" (the
  1803.                                 default) will disable the function.  This
  1804.                                 command is useful for high-speed typing --
  1805.                                 carriage-returns are supplied by the
  1806.                                 program.
  1807.  
  1808.     :set ws        Wrap around end of file on searches (default)
  1809.     :set nows    Do not wrap around end of file on searches
  1810.  
  1811.     :set rmar=n<cr>    (NON-UNIX) Set right margin for text filling (see below)
  1812.                 Default value is rmar=70.
  1813.     
  1814.             
  1815.  
  1816.     *** OTHER COMMANDS ***
  1817.  
  1818.     :heap<cr>    (NON-UNIX) Print the number of free bytes still
  1819.                 available in the memory heap.  The number
  1820.                 indicated is rounded down to the nearest 500
  1821.                 bytes.  The indicated space is not completely
  1822.                 available for text because each line of text
  1823.                 requires at least 10 bytes of overhead.
  1824.  
  1825.     :clear<cr>    (NON-UNIX) Clear the yank, last-command, and 
  1826.                 named buffers, and show the number of free 
  1827.                 bytes still available in the memory heap.
  1828.  
  1829.     :[range]fill <cr>    
  1830.             (NON-UNIX) In the range specified, fill text with 
  1831.                 left margin copied from current line and
  1832.                 right margin 'rmar' spaces.  See detailed
  1833.                 "FILL" description below.
  1834.                 
  1835.     :[range]rfill <cr>    
  1836.             (NON-UNIX) Same as :fill except that new sentences will
  1837.                 begin on a new line.  This is useful for making
  1838.                 already-filled text easier to edit.
  1839.             
  1840.      -> :fillp<cr>    (NON-UNIX) Fill paragraph.  Like :fill except that
  1841.                                 the entire paragraph in which the cursor
  1842.                                 sits is filled (no need to mark any text).
  1843.                                 A paragraph is a section of text delimited
  1844.                                 by blank lines, the start or end of a file,
  1845.                                 lines that begin with a space or any of the
  1846.  
  1847.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1848.  
  1849.  
  1850.  
  1851.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 29
  1852.  
  1853.  
  1854.                                 characters in the string ".-_=*", or a
  1855.                                 <ctl-X>.
  1856.                 
  1857.     :rfillp<cr>    (NON-UNIX) Reverse fill paragraph.  Like "fillp" except
  1858.                 that new sentences will begin on a new line.
  1859.  
  1860.     :[range]upcase    (NON-UNIX) Convert to upper case the range of 
  1861.                 lines indicated.
  1862.     :[range]lowcase    (NON-UNIX) Convert to lower case the range of 
  1863.                 lines indicated.
  1864.             
  1865.     :[range]center  (NON-UNIX) Center on the page the range of 
  1866.                                 lines indicated.  Control characters, tabs,
  1867.                                 and leading or trailing spaces will be
  1868.                                 ignored when this command computes where to
  1869.                                 place the line.  Lines greater than 80
  1870.                                 characters will not be altered.  Lines will
  1871.                                 be centered about the current value of
  1872.                                 "ctr".  By default ctr=40.  It may be
  1873.                                 altered with the ":set ctr=n" command.
  1874.     
  1875.     v        Print greeting message and Oak Hill Vi (TM) version 
  1876.                 number on screen.
  1877.  
  1878.      -> <ctl-L>        Redraw the screen -- useful if display becomes 
  1879.                 corrupted.
  1880.  
  1881.      -> mx        Mark the current line and cursor position with 
  1882.                                 an identifying character from [a-z]  (see
  1883.                                 'x command, up to 10 lines may be marked;
  1884.                                 erasure and re-use of the 10 is automatic)
  1885.  
  1886.      -> <ctl-G>        Same as ":f<cr>" as described below
  1887.      -> :f<cr>        Print on the status line the name of the current file, 
  1888.                                 the line number, the total number of lines,
  1889.                                 total characters to end of current line,
  1890.                                 and total number of characters in file.  If
  1891.                                 the file has been modified and has not been
  1892.                                 written out to disk, the indicator
  1893.                                 "[modified]" will appear next to file name.
  1894.  
  1895.      -> :!<cr>        Escape to MS-DOS.
  1896.      -> :shell<cr>    Either of these commands escapes to MS-DOS and 
  1897.                                 allows you to enter DOS commands without
  1898.                                 exiting the Oak Hill Vi (TM) editor. A copy
  1899.                                 of the MS-DOS program COMMAND.COM must be
  1900.                                 accessible via the current MS-DOS PATH on
  1901.                                 the current disk.  Enough unused memory
  1902.                                 must be available to run COMMAND.COM and
  1903.                                 the DOS command you choose.  Otherwise an
  1904.                                 error message will be generated.
  1905.             
  1906.     :!cmd<cr>    Same as above except that the DOS command "cmd" 
  1907.                 will be executed immediately.
  1908.  
  1909.     <ctl-C>        Abort program.  This is an MS-DOS command to 
  1910.                                 be used in case the program seems "hung".
  1911.                                 When the program is operating normally,
  1912.  
  1913.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1914.  
  1915.  
  1916.  
  1917.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 30
  1918.  
  1919.  
  1920.                                 this command will not generate an abort.
  1921.  
  1922.     "x<n><yank>    Named buffer yank/delete: on next yank or delete
  1923.     "x<n><delete>        command, save yanked or deleted text in
  1924.                                 buffer x where x is a character from [a-z]
  1925.                                 as well as saving it in the usual default
  1926.                                 buffer.
  1927.  
  1928.                 EXAMPLES:   "a6yy 
  1929.                         "x4dw
  1930.             
  1931.                 The first example will yank six lines 
  1932.                 and store them in buffer 'a'.
  1933.                 
  1934.                 The second example will delete four words 
  1935.                 and store them in buffer 'x'.
  1936.  
  1937.     "xp        Named buffer put: do a put (p or P) command using
  1938.     "xP        the contents of named buffer x rather than the
  1939.             contents of the default buffer.
  1940.  
  1941.                 EXAMPLE: "ap will put the contents of marked
  1942.                     buffer 'a' after the current line or
  1943.                     cursor position.
  1944.     
  1945.     !adr!cmd<cr>    This command will delete a group of lines from the
  1946.             current line to the line at address adr, pass
  1947.             those lines through an external filter 'cmd',
  1948.             and load the results into the location
  1949.             originally occupied by the unfilterd lines.
  1950.             
  1951.             Note: This command is not preceded by a colon.
  1952.             
  1953.             Examples:
  1954.             
  1955.             !3j!sort<cr>
  1956.             !'a!sort<cr>
  1957.             !21Gsort<cr>
  1958.             !Gsort<cr>
  1959.             !!dir<r>
  1960.             
  1961.             The first example will pass the current line and
  1962.             the next three lines through the DOS 'sort' filter
  1963.             and replace the original lines with a sorted
  1964.             version.
  1965.             
  1966.             The second example will do the same for the current
  1967.             line through the line marked 'a'.
  1968.             
  1969.             The third example will do the same for the current
  1970.             line through the 21st line.
  1971.             
  1972.             The fourth example will do the same for the current
  1973.             line through the last line.
  1974.             
  1975.             The fifth example will replace the current line
  1976.             with output of the DOS 'dir' command (useful for
  1977.             looking at the contents of directories without
  1978.  
  1979.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  1980.  
  1981.  
  1982.  
  1983.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 31
  1984.  
  1985.  
  1986.             leaving the editor).
  1987.             
  1988.             This command can be undone with the 'u' (undo)
  1989.             command.
  1990.             
  1991.             Note: This command must write temporary "scratch"
  1992.             files to your current default directory.  There
  1993.             must be enough space for these files or the command
  1994.             will fail.
  1995.             
  1996.     :map x string<cr>
  1997.             Make character x stand for the commands in "string".
  1998.                                 Use <ctl-V> to preface any special
  1999.                                 characters like carriage return or
  2000.                                 backspace.  Up to ten mappings can be
  2001.                                 stored.  Those older than the latest ten
  2002.                                 are forgotten.  "Unmap" by mapping x back
  2003.                                 into itself -- 'map x x<cr>'
  2004.  
  2005.                 EXAMPLE: :map T /George^V<cr>cwBill^V<esc><cr>
  2006.  
  2007.                 will make the command 'T' search for the next
  2008.                 occurrence of the pattern "George" and convert
  2009.                 it to "Bill".
  2010.             
  2011.  
  2012.     2.10 IBM EDIT KEYS
  2013.     ----------------------------------------------------------------------
  2014.     
  2015.     IBM EDIT AND DISPLAY CONTROL KEYS
  2016.     -----------------------------------------------------------------------
  2017.     Left-arrow    Cursor left 1 or 4 characters (same as 'h 4h')
  2018.     Right-arrow    Cursor right 1 or 4 characters (same as 'l 4l')
  2019.     Up-arrow    Cursor up 1 or 4 lines (same as 'k 4k')
  2020.     Down-arrow    Cursor down 1 or 4 lines (same as 'j 4j')
  2021.  
  2022.     Pg Dn        Jump ahead one screenfull (same as <ctl-F>)
  2023.     Pg Up        Jump back one screenfull (same as <ctl-B>)
  2024.     Home         Jump to first line (same as '1G')
  2025.     End        Jump to last line (same as 'G')
  2026.  
  2027.     Del         Delete 1 character (same as 'x 4x')
  2028.     Insert         Insert text (same as 'i')
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2046.  
  2047.  
  2048.  
  2049.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 32
  2050.  
  2051.  
  2052.     3.0  LINE RANGE SPECIFICATION
  2053.     =======================================================================
  2054.         Line ranges are specified in the form
  2055.        
  2056.         [spec1,[spec2]]
  2057.        
  2058.         If both spec1 and spec2 are missing, the implied range is simply
  2059.         the current line.  
  2060.        
  2061.         If spec2 is missing, the implied range is spec1.
  2062.        
  2063.         Spec2 must be greater than or equal to spec1 or an error message
  2064.         will be generated.
  2065.        
  2066.         The spec values may be an integer line number, "." to represent the
  2067.         current line, "$" to represent the last line, "'a" to represent the
  2068.         line named "a" (see mx command, Section 2.7), "%" as a shorthand to
  2069.         indicate all lines, or a pattern search "/string/".  Any of these
  2070.         spec values except % may be followed by a "+n" or "-n" to indicate
  2071.         a count of lines above or below the spec.  Alternatively, "+++" is
  2072.         equivalent to "+3" for example.
  2073.        
  2074.         Spec EXAMPLES:
  2075.         
  2076.         4,30        Line numbers 4 through 30.
  2077.         
  2078.         .,$        Current line through last line.
  2079.         
  2080.         'a,'b        Lines named (see mx command, Section 2.7) 'a through 'b.
  2081.         
  2082.         'a,.        Line 'a through the current line.
  2083.         
  2084.         %        Lines 1 through last line (synonymous with 1,$).
  2085.         
  2086.         (nothing)    Current line only
  2087.         
  2088.         /Dorothy/    Next line on which the string "Dorothy" appears
  2089.         
  2090.         .,.+4        Current line through next four lines
  2091.         
  2092.         .,.++        Current line through next two lines
  2093.         
  2094.         ---        Third line above current line ("." is default)
  2095.         
  2096.         /Sam/++        Second line below line where "Sam" occurs
  2097.         
  2098.         $-1        One line above last line
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2112.  
  2113.  
  2114.  
  2115.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 33
  2116.  
  2117.  
  2118.     4.0 TEXT FILL AND CENTERING FEATURES
  2119.     =======================================================================
  2120.     With the ":fill" and ":center" commands, you can do elementary
  2121.     word processing within Oak Hill Vi (TM).  
  2122.  
  2123.     4.1 TEXT FILL FEATURE 
  2124.     --------------------------------------------------------------------
  2125.         The "fill" feature allows you to clean up "ragged" lines of varying
  2126.         length will a single command.  This function is sometimes called
  2127.         "formatting."  The range of text to be filled may be specified with
  2128.         a line range specification, or you can use the ":fillp" command to
  2129.         fill text as you edit.
  2130.         
  2131.         For example, suppose you have entered and edited text in the
  2132.         following "ragged" form --
  2133.         
  2134.             Man is a singular creature.  He has a set of gifts
  2135.             which make him unique among the animals: so that 
  2136.             unlike them, he
  2137.             is not a figure in the landscape -- he is a shaper
  2138.             of the landscape.  
  2139.             In body
  2140.             and in mind he is the explorer of nature, the 
  2141.             ubiquitous animal, who
  2142.             did not
  2143.             find but has made his home in every continent.
  2144.         
  2145.         By issuing a single command, Oak Hill Vi (TM) will replace this
  2146.         paragraph with the following neatly filled text --
  2147.  
  2148.                 Man is a singular creature.  He has a set of gifts
  2149.                 which make him unique among the animals: so that unlike
  2150.                 them, he is not a figure in the landscape -- he is a
  2151.                 shaper of the landscape.  In body and in mind he is the
  2152.                 explorer of nature, the ubiquitous animal, who did not
  2153.                 find but has made his home in every continent.
  2154.             
  2155.     EXAMPLES:
  2156.  
  2157.     :fillp<cr>    will fill the paragraph where the cursor is located
  2158.     :fill<cr>    will fill the current line only
  2159.     :'a,.fill<cr>    will fill the line marked "a" to the current line
  2160.     :%fill<cr>    will fill the entire file
  2161.  
  2162.              If the last (non-white-space) character on a line is an
  2163.              end-of-sentence character ('.', '?', or '!'), that line will
  2164.              be followed by two spaces in the filled text.  
  2165.  
  2166.              When filling text: 
  2167.  
  2168.              Blank lines are not affected, so paragraphing will be
  2169.              preserved.
  2170.  
  2171.              Lines whose first non-white space character is a '.'(period)
  2172.              will not be affected, so any UNIX nroff/troff command lines
  2173.              (like .P, .sp etc.) will not be altered.  
  2174.     
  2175.              Lines whose first non-white space character is a ^M or ^L will
  2176.  
  2177.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2178.  
  2179.  
  2180.  
  2181.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 34
  2182.  
  2183.  
  2184.              not be altered.
  2185.      
  2186.              Lines that begin with a <ctl-X> will not be altered.  This
  2187.              feature lets you explicitly "protect" lines from the fill
  2188.              function with a character that can be removed later by a
  2189.              global substitution.
  2190.  
  2191.              Any control characters present in the text are "not counted"
  2192.              in performing the fill operation.  For example the strings 
  2193.  
  2194.                   ^Uhello^T
  2195.         
  2196.              and
  2197.          
  2198.                   hello
  2199.     
  2200.              are both counted as occupying five columns.  This lets you
  2201.              imbed printer control characters in the text without affecting
  2202.              the "fill" of the final text.  These control characters can be
  2203.              expanded to longer control sequences (if required) by a global
  2204.              substitution or with the "page" program described below.
  2205.  
  2206.         The text fill operation is reversible with the "u" (undo) command.
  2207.  
  2208.         Note: It is good practice to fill modest-sized blocks of text at a
  2209.         time.  Because the undo function must "remember" the text block the
  2210.         way it was before filling, the program must find enough heap memory
  2211.         to hold the "old" version.  The program will not abort if you
  2212.         attempt to fill too much text at once; it will simply generate a
  2213.         warning message asking you if you wish to proceed even though the
  2214.         fill will not be reversible.  Of course if you wish to fill a large
  2215.         file all at once you can always put a safety copy of the file on
  2216.         disk with the ":w filename<cr>" command.
  2217.  
  2218.         The fill operation will observe a right margins set by rmar.  The
  2219.         left margin will be "copied" from the current line.  The left
  2220.         margin may be any number of consecutive spaces or tab characters.
  2221.         
  2222.         Example: if rmar=70 and the current line has two tab characters at
  2223.         the front of the line, the text will be filled with a right margin
  2224.         at the 70th column, and the left margin will be 16 columns (two tab
  2225.         characters) for every line in the fill range.  The value for rmar
  2226.         may be set to any number from 20 to 160, but the fill operation
  2227.         will be rejected if rmar is less than 20 characters from the left
  2228.         margin.  
  2229.        
  2230.         Note: for a given selection of margin settings the results of fill
  2231.         operations will be the same whether the line number option, ":set
  2232.         nu<cr>" has been activated or not.  If the option is "on", the text
  2233.         will appear on the screen to be right-shifted by 8 columns to leave
  2234.         room for the line number, but the margins and line lengths in the
  2235.         actual text will be the same as if the line number option were
  2236.         turned off.
  2237.  
  2238.         Text is generally easier to edit if each new sentence begins on a
  2239.         new line.  Once text has been filled, it becomes harder to edit
  2240.         because a new sentence may begin anywhere.  To make it easier, use
  2241.         the "rfill" command (mnemonic - "reverse fill" or "roff fill").
  2242.  
  2243.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2244.  
  2245.  
  2246.  
  2247.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 35
  2248.  
  2249.  
  2250.         This command works like "fill" except that (1) every new sentence
  2251.         (defined below) is forced to begin on a new line, and (2) the left
  2252.         margin is forced to zero.  "rfillp" is like "rfill" except that
  2253.         only a single paragraph (the one in which the cursor is located)
  2254.         will be affected.
  2255.  
  2256.     EXAMPLES:
  2257.  
  2258.     :'a,'brfill<cr>        will "reverse fill" text from lines "a" to "b"
  2259.     :rfillp<cr>        will "reverse fill" the current paragraph
  2260.  
  2261.         Oak Hill Vi (TM) assumes a new sentence has begun if it finds an
  2262.         end-of-sentence character followed by two spaces, or an
  2263.         end-of-sentence character that is the last non-white-space
  2264.         character on the line.  
  2265.  
  2266.         If you use the "fillp" and "rfillp" operations frequently, don't
  2267.         forget the convenience of the "map" command to simplify your
  2268.         typing.  We recommend commands like
  2269.  
  2270.         :map > :fillp^M<cr>
  2271.         :map < :rfillp^M<cr>
  2272.  
  2273.         for your VISETUP.VI file (see the "SETUP FILE" section).  Then when
  2274.         you wish to fill the text in a paragraph, all you have to do is
  2275.         issue the command ">" or "<".
  2276.  
  2277.     4.2 TEXT CENTERING FEATURE 
  2278.     --------------------------------------------------------------------
  2279.         The "center" command allows you to center one or more lines of
  2280.         text.  As in the "fill" command, control characters are ignored in
  2281.         calculating where to start the line.  This allows you to place
  2282.         printer control characters in-line with the text without affecting
  2283.         centering.
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2310.  
  2311.  
  2312.  
  2313.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 36
  2314.  
  2315.  
  2316.     5.0 SETUP FILE "VISETUP.VI"
  2317.     =======================================================================
  2318.         If you have a standard set of options or commands you would like
  2319.         exercised automatically every time the program loads, they may be
  2320.         entered into a special file for that purpose called VISETUP.VI.
  2321.  
  2322.         Every time Oak Hill Vi (TM) is loaded, it looks for VISETUP.VI
  2323.         first in the current directory.  If it is not found there, the
  2324.         MS-DOS PATH environment variable is fetched, and each directory in
  2325.         the path is searched in turn until the file is found.  If the file
  2326.         is not found, all default variables are used.  Therefore, a good
  2327.         place to store your "basic" VISETUP.VI file is wherever you have
  2328.         stored the Oak Hill Vi executable file.  
  2329.  
  2330.         If you'd like to have editing features that are customized for
  2331.         particular text files, just store a customized VISETUP.VI in the
  2332.         same directory as the text file, and make that directory your
  2333.         default directory as you edit.
  2334.  
  2335.         If you want to check the directory in which Oak Hill Vi (TM) found
  2336.         your VISETUP.VI file, use the ":set<cr>" command.  The first line
  2337.         of the output from this command will show where the VISETUP.VI
  2338.         file, if any, was found.
  2339.  
  2340.         An example of a setup file that (a) automatically invokes line
  2341.         numbering, (b) sets a margin wrap at 10 spaces, (c) maps the
  2342.         command ">" into a fill-paragraph command, (d) maps "<" into
  2343.         fill-paragraph with-each-sentence-on-a-new-line command, (e) sets
  2344.         the right margin for text fills at column 75, and (f) jumps
  2345.         immediately to the last line of the file, is given by the
  2346.         seven-line setup file --
  2347.  
  2348.         :set nu
  2349.         :set wm=10
  2350.         :map > :fillp^M
  2351.         :map < :rfillp^M
  2352.         :set rmar=75
  2353.         G
  2354.  
  2355.         Each command must appear on a separate line.
  2356.  
  2357.         Note that if a carriage return is required as part of the command
  2358.         itself (as in the "map" commands), it must appear explicitly -- the
  2359.         carriage return at the end of each line in VISETUP.VI doesn't
  2360.         count!  (If you are using Oak Hill Vi (TM) to create VISETUP.VI,
  2361.         just "quote" the carriage return by preceding it with a <ctl-V>.)
  2362.         It will appear as "^M".
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2376.  
  2377.  
  2378.  
  2379.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 37
  2380.  
  2381.  
  2382.     6.0 MEMORY AND FILE SIZE CONSIDERATIONS
  2383.     =======================================================================
  2384.         The current version of Oak Hill Vi (TM) does all editing on buffers
  2385.         stored in a core memory "heap".  Except when reading and writing
  2386.         files, the program does not access disk storage.  This has the
  2387.         advantage of making the program very fast, as well as reducing the
  2388.         power consumption and noise level in battery-powered lap-top
  2389.         portable computers with disk drives.  It has the disadvantage of
  2390.         limiting the maximum-sized file you can edit.
  2391.  
  2392.     Maximum file sizes for the two program models are:
  2393.  
  2394.                   Approximate           Available
  2395.                   Max File Size         Machine Memory
  2396.         -----------------------------------------------------
  2397.         Standard Model  250,000 characters    640K bytes 
  2398.         Compact Model    35,000 characters    140K bytes
  2399.  
  2400.         Oak Hill Vi (TM) makes its own internal checks on the memory heap
  2401.         as you use it.  You will receive warning messages as you approach
  2402.         the end of the available heap.  When such a message appears and you
  2403.         are editing a large file, it is best to save your work, exit the
  2404.         program, and "slice" the file into smaller sub-files using the
  2405.         special read routine described below or the separate "SLICE"
  2406.         utility program described in the next section.
  2407.  
  2408.         Heap warning messages may also appear after very long editing
  2409.         sessions on files that are below the maximum sizes shown above.
  2410.         This is because the overhead of memory management is not entirely
  2411.         recoverable after every editing change, and eventually the heap
  2412.         becomes exhausted.  In this case, the best thing to do is simply to
  2413.         write out the buffer and quit ("ZZ" or ":wq"), and restart the
  2414.         program.  
  2415.  
  2416.         If warning messages are ignored and the heap becomes corrupted, the
  2417.         program will terminate abruptly, and all editing done since the
  2418.         last save will be lost.  The abort is necessary since any attempt
  2419.         to write out a corrupted heap would destroy an already-saved file.
  2420.  
  2421.         If you wish, you can monitor the status of the memory heap with the
  2422.         command ":heap<cr>".  This will show the size of the heap that Oak
  2423.         Hill Vi (TM) still has available.  Chunks of memory under 500 bytes
  2424.         are not counted.  The ":clear<cr>" works like ":heap<cr>" except
  2425.         that it will first free any memory held by the yank/delete buffers
  2426.         and all the named buffers.
  2427.  
  2428.         Another way to monitor remaining available memory is to use the
  2429.         shell escape command, ":!<cr>", and run the DOS chkdsk command.
  2430.  
  2431.         If you use core-resident programs (like Borland's "Sidekick"), it
  2432.         is best to have these programs loaded before you run Oak Hill Vi
  2433.         (TM).  Do not start core-resident programs from the Standard Model
  2434.         Oak Hill Vi shell escape.  If you do, you will "box in" Oak Hill Vi
  2435.         and the heap will exhaust almost immediately!  
  2436.  
  2437.         "Boxing in" is not a problem with the Compact Model because that
  2438.         model requests its full allotment of 64K as soon as the program
  2439.         loads.  If you wish to use Oak Hill Vi (TM) as one of several
  2440.  
  2441.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2442.  
  2443.  
  2444.  
  2445.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 38
  2446.  
  2447.  
  2448.         core-resident programs you should use the Compact Model.  Note
  2449.         that other than the shell escape feature, no explicit support is
  2450.         provided to do make Oak Hill Vi (TM) "core-resident".
  2451.  
  2452.         If you wish to edit a file that is larger than (or even close to)
  2453.         the maximum sizes shown, we recommend that you first break the file
  2454.         into "chapters" or major sections of about half the maximum sizes
  2455.         shown, using the "slice" utility and/or the ":r n1 n2 filename"
  2456.         command described below.
  2457.  
  2458.         Example:  Suppose the ASCII file "george" contains 400,000
  2459.         characters.  Assuming an average of 50 characters per line, george
  2460.         contains about 8000 lines.  Therefore to break george into four
  2461.         files, the following sequence of Oak Hill Vi (TM) commands may be
  2462.         used.
  2463.  
  2464.         vi temp
  2465.         :r 1 2000 george
  2466.         :w chap1
  2467.         dG
  2468.         :r 2001 4000 george
  2469.         :w chap2
  2470.         dG
  2471.         :r 4001 6000 george
  2472.         :w chap3
  2473.         dG
  2474.         :r 6001 8000 george
  2475.         :w chap4
  2476.         :q!
  2477.  
  2478.         These commands will break george into four files called chap1,
  2479.         chap2, chap3, and chap4.  These may be edited separately and later
  2480.         recombined with the MS-DOS command --
  2481.  
  2482.     copy chap1+chap2+chap3+chap4 george    or      copy chap* george
  2483.  
  2484.         See the discussion of the "slice" program below for another
  2485.         approach to examining and breaking apart large files.
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2508.  
  2509.  
  2510.  
  2511.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 39
  2512.  
  2513.  
  2514.     7.0 "SLICE" UTILITY PROGRAM
  2515.     ========================================================================
  2516.         The "slice" utility program may be used to (A) count the lines,
  2517.         words, and characters in a file (B) list a designated range of
  2518.         lines (C) cut a file into smaller, easier-to-edit sub-files (D)
  2519.         find good "cutpoints" for a large file by searching for specified
  2520.         character strings in the file.
  2521.            
  2522.     -----------------------------------------------------------------
  2523.     (A) Counting lines, words, and characters
  2524.  
  2525.     Usage:        slice filename1 [filename2 ...]
  2526.  
  2527.     This usage will produce a one-line message telling how many total
  2528.     lines, words (character strings separated by white space), and
  2529.     characters a given file has.
  2530.     
  2531.     EXAMPLE:    slice george sam bill
  2532.     
  2533.     This would produce three messages like the following --
  2534.     
  2535.             "george" has 122 lines, 916 words, 4562 characters
  2536.             "sam" has 14 lines, 102 words, 706 characters
  2537.             "bill" has 2034 lines, 11301 words, 58931 characters
  2538.             
  2539.     -----------------------------------------------------------------
  2540.     (B),(C) Listing and cutting a designated range of lines.
  2541.     
  2542.     Usage:        slice n1 [n2] [^]filename1 [> filename2]
  2543.  
  2544.         To help you decide where to break a file, you can list selected
  2545.         lines of a file with this command.  If n1 and n2 are specified,
  2546.         lines n1 through n2 will be sent to the screen.  If only n1 is
  2547.         specified, all lines from n1 to the end of the file will will be
  2548.         sent to the screen.  If the filename is preceded by a carot (^), a
  2549.         line number will precede the listing of each line.  
  2550.  
  2551.         If the output is redirected with the ">" character, the designated
  2552.         file segment will be written into filename2.  This is how the file
  2553.         can be split.
  2554.  
  2555.     EXAMPLE:
  2556.     
  2557.     Suppose you use 
  2558.     
  2559.         slice 200 400 ^george
  2560.         
  2561.         to determine that a good breakpoint in george comes at line 263,
  2562.         where a major text heading begins.
  2563.     
  2564.     You may then use
  2565.     
  2566.         slice 1 262 george > george1
  2567.         slice 263 george > george2
  2568.         
  2569.     to create the two smaller sub-files george1 and george2.
  2570.  
  2571.     -----------------------------------------------------------------
  2572.  
  2573.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2574.  
  2575.  
  2576.  
  2577.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 40
  2578.  
  2579.  
  2580.     (D) Finding cutpoints with a string search
  2581.  
  2582.     Usage:        slice // filename1 [filename2 ...]
  2583.             slice %% filename1 [filename2 ...]
  2584.         
  2585.         These commands will accept the list of filenames and then ask you
  2586.         for a search string on a separate input line.  The program will
  2587.         then supply a line number and list every line where it finds the
  2588.         specified string.  The first ("//") version requires an exact match
  2589.         to the search string.  The second ("%%") version allows the use of
  2590.         meta characters (see the string search discussion in the "TEXT
  2591.         SEARCH" section above).
  2592.  
  2593.         It can be tedious to list hundreds of lines looking for a good
  2594.         cutpoint.  If you already know some of the text on the line where
  2595.         you would like to make a cut (for example the title of a major
  2596.         heading), you can use these commands to locate the cutpoint more
  2597.         quickly.
  2598.  
  2599.     EXAMPLE:        slice // george
  2600.     
  2601.     will produce the query    
  2602.                 Enter search string:
  2603.                 
  2604.         Suppose you supply a string from heading that you know starts a
  2605.         major section of your file.
  2606.     
  2607.                 MARKET ANALYSIS
  2608.                 
  2609.     The program would then scan the entire file george and produce an
  2610.     output like this --
  2611.     
  2612.     george:
  2613.        388  PRELIMINARY MARKET ANALYSIS RESULTS
  2614.        
  2615.     You would then know to cut the file at line 388.
  2616.     
  2617.     Entering the slice command with no arguments will print a summary of
  2618.     the command syntax.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2640.  
  2641.  
  2642.  
  2643.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 41
  2644.  
  2645.  
  2646.     8.0 "PAGE" TEXT PROCESSING PROGRAM
  2647.     =======================================================================
  2648.         The "page" program is a simple utility to add top-of-page and
  2649.         bottom-of-page processing (including page numbers, headers, and
  2650.         footers) needed before sending a file to a printer.  "Page" will
  2651.         also translate user-settable characters into special strings to
  2652.         control printer underlining, bold, or other special functions.
  2653.  
  2654.         With the "fill" function of Oak Hill Vi (TM) and the "page"
  2655.         program, Oak Hill Vi makes a fast, simple, word processor as well
  2656.         as a text editor.
  2657.  
  2658.     Usage:    
  2659.         page [-Tn] [-Bn] [-Ln] [-Nn] [-Sn] [-Cn] filename1 [> temp]
  2660.     
  2661.     The "n" values are the following integer constants.
  2662.     
  2663.     -Tn number of blank lines at the top of the page (default=5).
  2664.     -Bn number of blank lines at the bottom of the page (default=3).
  2665.     -Ln length of page in lines (default=66).
  2666.     -Nn sets page on which first header appears (default=2).
  2667.     -Sn sets page number value in first-appearing header (default=2).
  2668.     -Cn sets center column for headers and footers (default=30).
  2669.  
  2670.         The processed files will be printed to the screen with page
  2671.         spacing, page headers, and numbers inserted.  (No page numbers will
  2672.         be inserted if there are less than 3 blank lines at the top of the
  2673.         page.)  If the "> temp" is appended, the output will be placed in
  2674.         file "temp" where it can be sent to a hard copy printer.
  2675.  
  2676.     EXAMPLE:
  2677.  
  2678.         page -L88 george > ggg
  2679.     
  2680.         will put a ready-to-print version of file "george" into the file
  2681.         "ggg".  The file "ggg" will be set up for an 88-lines-to-the-page
  2682.         printing.
  2683.  
  2684.     8.1 PAGE HEADERS AND FOOTERS
  2685.     --------------------------------------------------------------------
  2686.         Page "headers" and "footers" can be added to the printed output by
  2687.         imbedding the strings in the text with the syntax:
  2688.  
  2689.         .HEADER=headerstring
  2690.         .FOOTER=footerstring
  2691.  
  2692.         Everything past the equal sign "=" will appear in a header or
  2693.         footer string.
  2694.  
  2695.     EXAMPLE:
  2696.  
  2697.         If the file "george" has the lines (with the '.' in column 1)
  2698.  
  2699.     .HEADER=This Is A Header
  2700.     .FOOTER=This Is A Footer
  2701.  
  2702.         page -C25 -S15 george > ggg
  2703.     
  2704.  
  2705.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2706.  
  2707.  
  2708.  
  2709.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 42
  2710.  
  2711.  
  2712.         will put a ready-to-print version of file "george" into file "ggg"
  2713.         with headers and footers centered about column 25.  Page numbering
  2714.         will begin with a "This is a Header -- Page 15" at the top of the
  2715.         first page of output.
  2716.  
  2717.     8.2 CHARACTER TRANSLATION
  2718.     -----------------------------------------------------------------------
  2719.         As it processes a file, "page" will optionally translate
  2720.         user-designated characters into user-designated character strings.
  2721.         By imbedding control characters in the text (which are not
  2722.         "counted" when filling text -- see Section 4), print control such
  2723.         as bold or underlining can be imbedded with the test.
  2724.  
  2725.         The translation table is contained in a separate file called
  2726.         "TRANS.PVI".  Page will search for this file first in the current
  2727.         directory, then in the directory "\BIN", then "\LIB", and finally
  2728.         the root directory "\".  If it cannot find the file, no
  2729.         translations will take place.
  2730.  
  2731.         The following is an example of a legitimate "TRANS.PVI" file
  2732.         format:
  2733.  
  2734.         ; File Start
  2735.         ; Hewlett Packard Thinkjet Translation Codes
  2736.         
  2737.         ^A ^O        ; Bold Off
  2738.         ^B ^N        ; Bold On
  2739.         
  2740.         ^T ^[&d@    ; Underline Off
  2741.         ^U ^[&dD    ; Underline On
  2742.         
  2743.         ^R ^[&k0S    ; Normal Print Pitch
  2744.         ^S ^[&k1S    ; Expanded Print Pitch
  2745.         ^Y ^[&k2S    ; Compressed Print Pitch
  2746.         ^Q ^[&k3S    ; Expanded-Compressed Print Pitch
  2747.         ; File End
  2748.  
  2749.         In this file (as in the Oak Hill Vi (TM) screen display), control
  2750.         characters are indicated by a leading '^' character.  
  2751.  
  2752.         The indicated TRANS.PVI file (supplied on the program disk) will
  2753.         translate every ^U character into the sequence ^[&dD and every ^B
  2754.         character into the sequence ^N.  The following are syntax rules for
  2755.         TRANS.PVI:
  2756.  
  2757.         1. Blank lines are ignored.
  2758.         2. Any text to the right of a ';' character is ignored.
  2759.         3. Any single character except ';' and '^Z' may be translated.
  2760.     
  2761.     EXAMPLE:
  2762.  
  2763.     During editing you enter:
  2764.  
  2765.         ^UFourscore and seven years ago^T, our forefathers brought
  2766.  
  2767.         When run through "PAGE" and the TRANS.PVI table above, this line
  2768.         becomes:
  2769.  
  2770.  
  2771.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2772.  
  2773.  
  2774.  
  2775.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 43
  2776.  
  2777.  
  2778.         ^[&dBFourscore and seven years ago^[&d@, our forefathers brought
  2779.  
  2780.         And when printed on the Thinkjet the phrase "Fourscore and seven
  2781.         years ago" will be printed in bold.
  2782.  
  2783.     8.3 OTHER
  2784.     -----------------------------------------------------------------------
  2785.         A <ctl-L> (form-feed) character at the beginning of any line will
  2786.         cause a skip to the next page.  Any remaining characters on the
  2787.         line are ignored.
  2788.  
  2789.         Entering the page command with no arguments will print a summary of
  2790.         the command syntax.
  2791.     
  2792.     
  2793.     9.0 OAK HILL Vi (TM) and UNIX (TM) Vi
  2794.     =======================================================================
  2795.     
  2796.         In building Oak Hill Vi (TM) we have tried to include all of UNIX
  2797.         Vi's most commonly used features.  We apologize if we've left out
  2798.         one of your favorites!  Generally, if a feature that you like is
  2799.         missing, you'll find that there is another reasonable (though
  2800.         perhaps less familiar) way to do the same thing.  
  2801.  
  2802.         We are continuing to improve Oak Hill Vi (TM), adding features as
  2803.         requested while attempting keeping the program compact, fast, and
  2804.         all "core-based".  If you have special interest in a feature you
  2805.         would like to see added to Oak Hill Vi (TM), please write us to
  2806.         tell us about it.  If you are among the first three people to
  2807.         request a new feature that is subsequently added, you will receive
  2808.         a free update to the program.
  2809.  
  2810.         Some of the differences between UNIX (TM) Vi and Oak Hill Vi (TM)
  2811.         that you may find important are:
  2812.  
  2813.         1. The current version of Oak Hill Vi allows lines to be no more
  2814.         than 512 characters.  Most UNIX Vi editors allow 1024 characters.
  2815.  
  2816.         2. The entire "ex" editor command set available under UNIX Vi is
  2817.         not available on Oak Hill Vi (TM).  However most of the commonly used
  2818.         "ex" commands have been included.
  2819.     
  2820.     
  2821.     10.0 MISCELLANEOUS INFORMATION
  2822.     =======================================================================
  2823.  
  2824.         DOS ASCII FILES AND THE "LINE TOO LONG" ERROR MESSAGE:
  2825.  
  2826.         The standard DOS ASCII text file indicates the end of a line of
  2827.         text with a carriage-return/line-feed (CR-LF) character sequence.
  2828.         Oak Hill Vi (TM) will edit any text file that uses this sequence or a
  2829.         single line-feed (LF) as the end-of-line character.
  2830.  
  2831.         In some cases you may encounter files that use only a single
  2832.         carriage return (CR) as the end-of-line character.  Some text
  2833.         editors or downloading routines may produce such files.  If you
  2834.         attempt to edit such a file with Oak Hill Vi (TM) you may get a
  2835.         "Line too long" or "File empty" error message.  However, you may
  2836.  
  2837.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2838.  
  2839.  
  2840.  
  2841.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 44
  2842.  
  2843.  
  2844.         convert such a file to a standard DOS ASCII file with the
  2845.         CR_CRLF.EXE utility supplied with Oak Hill Vi.  The command
  2846.  
  2847.         CR_CRLF FILE1 FILE2
  2848.  
  2849.         will copy "FILE1" to "FILE2" and substitute a CR-LF pair for every
  2850.         CR that is not already followed by a LF.
  2851.  
  2852.         Be especially careful about trying to edit non-ASCII files, for
  2853.         example files that end in .EXE or .COM.  The results can be
  2854.         unpredictable.  If you should accidentally read in an non-ASCII
  2855.         file, simply exit with a ":q!<cr>".  It is important that you not
  2856.         make any changes in the file, because if you then attempt to write
  2857.         it back out to disk you will destroy the original file.
  2858.  
  2859.         In many cases, non-DOS-ASCII files will cause the program to
  2860.         terminate during the file-read sequence because of the line-length
  2861.         limitation (see below).
  2862.  
  2863.     LINE LENGTH:
  2864.  
  2865.         Lines are limited to a maximum of 512 characters each.  If this
  2866.         length is exceeded either while editing files or reading files into
  2867.         the buffer, error messages will be generated.
  2868.  
  2869.         COMMAND ABBREVIATIONS:
  2870.  
  2871.         For commands entered after the colon ":" you only need to enter
  2872.         enough letters to make the chosen command unique.  For example,
  2873.         ":sh<cr>" is equivalent to ":shell<cr>", and ":up<cr>" is
  2874.         equivalent to ":upcase<cr>".
  2875.         
  2876.         GREETING-SCREEN PAUSE:
  2877.         
  2878.     Every time the program is started, Oak Hill Vi (TM) pauses and
  2879.     requires an explicit carriage-return to proceed beyond the greeting
  2880.     screen.  You can remove the necessity for a carriage return by
  2881.     installing a ":set nopress<cr>" command in a VISETUP.VI file.  See
  2882.     Sections 5 and 2.9.  (The Registered version of Oak Hill Vi does
  2883.     not generate a pause.)
  2884.  
  2885.         INTERNAL ERRORS:
  2886.  
  2887.         If you receive a "Corrupted Pointer Structure -- Program Must
  2888.         Abort" message, and you have not received any warning messages
  2889.         about heap exhaustion, then you may have experienced an internal
  2890.         program error.  Please contact Oak Hill Software if this happens,
  2891.         and supply all the information you can about how the error
  2892.         occurred, including any error messages you may have received at the
  2893.         time of the abort.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2904.  
  2905.  
  2906.  
  2907.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 45
  2908.  
  2909.  
  2910.     11.0 COMMAND INDEX AND QUICK REFERENCE
  2911.     =======================================================================
  2912.     Command   Action                                                Section
  2913.     -------   ------                                                -------
  2914.     A ....... append text at end of line ........................... 2.3
  2915.     B ....... back up one Word ..................................... 2.1
  2916.     C ....... change remainder of line ............................. 2.5
  2917.     D ....... delete remainder of line ............................. 2.4
  2918.     E ....... move to end of next Word.............................. 2.1
  2919.     F ....... Fx - find character x (reverse search) ............... 2.2
  2920.     G ....... jump to end of file (or specified line number) ....... 2.1
  2921.     H ....... jump to first complete line on screen ................ 2.1
  2922.     I ....... insert text at front of line ......................... 2.3
  2923.     J ....... join line below with current line .................... 2.7
  2924.     L ....... jump to last complete line on screen ................. 2.1
  2925.     M ....... jump to middle line on screen ........................ 2.1
  2926.     N ....... move backward to previous pattern match .............. 2.2
  2927.     O ....... open file for text above current line ................ 2.3
  2928.     P ....... put stored lines (string) above (before) cursor ...... 2.7
  2929.     R ....... replace (overstrike) text ............................ 2.7
  2930.     S ....... substitute text for current line ..................... 2.7
  2931.     T ....... tx find char following character x (reverse search)... 2.7
  2932.     W ....... move forward one Word ................................ 2.1
  2933.     X ....... delete previous character ............................ 2.7
  2934.     Y ....... yank one line ........................................ 2.6
  2935.     Z ....... ZZ - write out file and quite editor ................. 2.8
  2936.     
  2937.     a ....... append ............................................... 2.3
  2938.     b ....... move back one word ................................... 2.1
  2939.     c ....... change ............................................... 2.5
  2940.     d ....... delete ............................................... 2.4
  2941.     e ....... move to end of word .................................. 2.1
  2942.     f ....... fx find character x (forward search) ................. 2.2
  2943.     h ....... move left one character .............................. 2.1
  2944.     i ....... insert ............................................... 2.3
  2945.     j ....... move down one line ................................... 2.1
  2946.     k ....... move up one line ..................................... 2.1
  2947.     l ....... move right one character ............................. 2.1
  2948.     m ....... mark line/character position ......................... 2.9
  2949.     n ....... move forward to next pattern match ................... 2.2
  2950.     o ....... open file for new text below current line ............ 2.3
  2951.     p ....... put stored lines (string) below (after) cursor ....... 2.7
  2952.     r ....... replace single character ............................. 2.7
  2953.     s ....... substitute text for current character ................ 2.7
  2954.     t ....... tx find char preceding character x (forward search)... 2.2
  2955.     u ....... undo last text change ................................ 2.3
  2956.     v ....... print greeting message and version number ............ 2.9
  2957.     w ....... move forward to next word ............................ 2.1
  2958.     x ....... delete one character ................................. 2.7
  2959.     y ....... yank ................................................. 2.6
  2960.     z ....... redraw screen around current line .................... 2.2
  2961.     
  2962.     <ctl-B>.. move back one screenfull ............................. 2.1
  2963.     <ctl-D>.. scroll down 8 lines .................................. 2.1
  2964.     <ctl-E>.. scroll up one line maintaining cursor if possible .... 2.1
  2965.     <ctl-F>.. move forward one screenfull .......................... 2.1
  2966.     <ctl-H>.. backspace ............................................ 2.1,3
  2967.     <ctl-L>.. redraw screen ........................................ 2.9
  2968.  
  2969.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  2970.  
  2971.  
  2972.  
  2973.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 46
  2974.  
  2975.  
  2976.     <ctl-U>.. scroll up 8 lines..................................... 2.1
  2977.     <ctl-V>.. accept next character literally ...................... 2.3
  2978.     <ctl-W>.. backspace over last word ............................. 2.3
  2979.     <ctl-Y>.. scroll down one line maintaining cursor if possible .. 2.1
  2980.     
  2981.     " ....... name buffer 'x' for yank, delete, or put command ..... 2.9
  2982.     $ ....... move to last character on line ....................... 2.1
  2983.     % ....... move to matching {}() character ....................... 2.1
  2984.     ' ....... go to first character of the line named 'x ........... 2.1
  2985.     ( ....... move to previous sentence ............................ 2.1
  2986.     ) ....... move to next sentence ................................ 2.1
  2987.     + ....... move to first character of following line ............ 2.1
  2988.     , ....... repeat last 'f' or 'F' command but reverse direction.. 2.2
  2989.     - ....... move to first non-white character of previous line ... 2.1
  2990.     . ....... repeat last command .................................. 2.3
  2991.     / ....... forward pattern search................................ 2.2
  2992.     0 ....... move to first character on line ...................... 2.1
  2993.     ; ....... repeat last 'f' or 'F' command ....................... 2.2
  2994.     : ....... colon command series (see below) ..................... 2.7,8,9
  2995.     ? ....... reverse pattern search................................ 2.2
  2996.     ^ ....... move to first non-white character in line ............ 2.1
  2997.     ` ....... go to line and character named `x .................... 2.1
  2998.     ~ ....... reverse case of character ............................ 2.7
  2999.     ! ....... filter lines through external program ................ 2.9
  3000.     
  3001.     
  3002.     :! ...... escape to MS-DOS ..................................... 2.9
  3003.     :abbr ... abbreviate string1 by macroname while in input mode... 2.7
  3004.     :center.. center text .......................................... 2.9
  3005.     :clear .. clear buffers and count remaining heap ............... 2.9
  3006.     :d ...... delete lines ......................................... 2.7
  3007.     :e ...... edit another file .................................... 2.8
  3008.     :f ...... print file name, line number, total characters, etc. . 2.9
  3009.     :fill ... fill text ............................................ 2.9
  3010.     :fillp .. fill paragraph ....................................... 2.9
  3011.     :lowcase  convert text to lower case............................ 2.9
  3012.     :map .... map single character into a command sequence.......... 2.9
  3013.     :m ...... move lines ........................................... 2.7
  3014.     :n ...... edit next file in sequence ........................... 2.1
  3015.     :p ...... print lines on screen ................................ 2.2,7
  3016.     :q ...... quit editor........................................... 2.8
  3017.     :r ...... read file from disk................................... 2.8
  3018.     :rfill .. reverse fill text .................................... 2.9
  3019.     :rfillp . reverse fill paragraph ............................... 2.9
  3020.     :s ...... substitute ........................................... 2.7
  3021.     :set .... set parameter (see below) ............................ 2.9
  3022.     :shell .. escape to MS-DOS ..................................... 2.9
  3023.     :heap ... measure remaining heap ............................... 2.9
  3024.     :t ...... transfer (copy) lines ................................ 2.7
  3025.     :upcase . convert text to upper case............................ 2.9
  3026.     :w ...... write buffer to disk.................................. 2.8
  3027.     :<n> .... move to line n ....................................... 2.1
  3028.     
  3029.     :set ai,noai ......... autoindent on/off (default noai) ........ 2.7
  3030.     :set aw,noaw ......... autowrite on/off (default aw) ........... 2.7
  3031.     :set beep,nobeep ..... computer speaker on/off (default on) .... 2.7
  3032.     :set colors .......... set foreground & background colors ...... 2.7
  3033.     :set ctr=n ........... set centering column (default n=40) ..... 2.7
  3034.  
  3035.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  3036.  
  3037.  
  3038.  
  3039.          OAK HILL VI (TM) SHAREWARE MANUAL - VERSION 5.7  -- Page 47
  3040.  
  3041.  
  3042.     :set cursor .......... set cursor to box or underscore ......... 2.7
  3043.     :set esc2='x'......... select additional escape character ...... 2.7
  3044.     :set ic,noic ......... ignore case on/off (default noic) ....... 2.7
  3045.     :set idm,noidm ....... print Input Mode message (default idm)... 2.7
  3046.     :set lines=n ......... screen size in lines .................... 2.7
  3047.     :set magic,nomagic ... meta character recognition on/off ....... 2.7
  3048.     :set nu,nonu ......... line number option on/off (default nonu). 2.7
  3049.     :set press,nopress ... greeting screen pause on/off (default on) 2.7
  3050.     :set rmar=n .......... right margin set (default n=75) ......... 2.7
  3051.     :set ts=n ............ set tab stops every n spaces ............ 2.7
  3052.     :set wm=n ............ wrap margin spaces (default n=0) ........ 2.7
  3053.     :set ws,nows ......... wrapscan on search on/off (default nows). 2.7
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.   COPYRIGHT (C) OAK HILL SOFTWARE INC, MAY 25, 1991, ALL RIGHTS RESERVED
  3102.  
  3103.